【问题标题】:Selecting Two Columns and creating a chart选择两列并创建图表
【发布时间】:2022-04-07 17:07:40
【问题描述】:

您好,我对 VBA 很陌生。我正在尝试使用两列 A1:A10、C1:C10(即 A 和 C)中的值创建一个图表。我用鼠标选择了这两列,当我尝试宏代码时出现以下错误“运行时错误 1004,应用程序错误或对象定义错误”。但是当我选择 A 列和 B 列(即 A1:B10)时,我可以创建图表。需要一些建议。

这是我的代码:

Sub Chart()

    Dim rng As Range

    Set rng = Selection

    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=rng
    ActiveChart.ChartType = xlColumnClustered

End Sub

【问题讨论】:

    标签: excel vba excel-charts


    【解决方案1】:

    这对我有用

    Sub Sample()
        Dim ws As Worksheet
        Dim rng As Range
        Dim objChrt As ChartObject
        Dim chrt As Chart
    
        Set ws = ThisWorkbook.Sheets("Sheet1")
        With ws
            Set rng = .Range("A1:A10,C1:C10")
            .Shapes.AddChart
            Set objChrt = .ChartObjects(.ChartObjects.count)
            Set chrt = objChrt.Chart
    
            With chrt
                .ChartType = xlColumnClustered
                .SetSourceData Source:=rng
            End With
        End With
    End Sub
    

    或者如果你还想使用.Selection,那么就使用这个

    Sub Sample()
        Dim ws As Worksheet
        Dim rng As Range
        Dim objChrt As ChartObject
        Dim chrt As Chart
    
        '~~> Check if what the user selected is a valid range
        If TypeName(Selection) <> "Range" Then
            MsgBox "Select a range first."
            Exit Sub
        End If
    
        Set ws = ThisWorkbook.Sheets(Selection.Parent.Name)
        With ws
            Set rng = Selection
            .Shapes.AddChart
            Set objChrt = .ChartObjects(.ChartObjects.count)
            Set chrt = objChrt.Chart
    
            With chrt
                .ChartType = xlColumnClustered
                .SetSourceData Source:=rng
            End With
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2014-09-22
      • 1970-01-01
      相关资源
      最近更新 更多