Excel 生成图形-运行时错误424-需要对象
我正在尝试使用以下VBa代码制作一个图形。但我在行中得到一个运行时错误424-需要对象:Excel 生成图形-运行时错误424-需要对象,excel,object,graph,vba,Excel,Object,Graph,Vba,我正在尝试使用以下VBa代码制作一个图形。但我在行中得到一个运行时错误424-需要对象: Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1) 出什么事了 Sub MakeGraph() Dim myChtObj As ChartObject Dim rngChtData As Variant Dim rngChtXVal As Variant Dim iColumn As Long
Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1)
出什么事了
Sub MakeGraph()
Dim myChtObj As ChartObject
Dim rngChtData As Variant
Dim rngChtXVal As Variant
Dim iColumn As Long
sel= Sheets("Data").Range(Cells(1, 1), Cells(200, 2))
rngChtData = sel
' define chart's X values
With rngChtData
Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1)
End With
' add the chart
Set myChtObj = ActiveSheet.ChartObjects.Add(Left:=250, Width:=425, Top:=10, Height:=240)
With myChtObj.Chart
' make an XY chart
.ChartType = xlLine
' remove extra series
Do Until .SeriesCollection.Count = 0
.SeriesCollection(1).Delete
Loop
' add series from selected range, column by column
For iColumn = 2 To rngChtData.Columns.Count
With .SeriesCollection.NewSeries
.Values = rngChtXVal.Offset(, iColumn - 1)
.XValues = rngChtXVal
.Name = rngChtData(1, iColumn)
End With
Next
End With
End Sub
您将rngChtData和rngChtXVal命名为
Range
对象,但将它们声明为Variant
。虽然变体可以是范围,但它使调试代码变得更加困难。尽可能使用显式变量类型。要解决问题,请按以下方式更改代码:
Sub MakeGraph()
Dim myChtObj As ChartObject
Dim rngChtData As Range
Dim rngChtXVal As Range
Dim iColumn As Long
With Sheets("Data")
Set rngChtData = .Range(.Cells(1, 1), .Cells(200, 2))
End With
' define chart's X values
With rngChtData
Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1)
End With
@SiddharthRout如果我把Set放在它前面,那么我会得到同样的错误。你需要
Set
更早:Set rngChtData=sel
我想把范围保持为一个数组,因为它将是另一个子对象的输入。因此它将针对不同的图形进行更改。你正在使用range
对象的Offset
方法,所以你必须选择你真正想要的——二维数组或范围对象。我想从数组中生成一个图。您能告诉我如何在vba中实现这一点吗?通过将series对象的.values
属性设置为数组,您可以使用显式值(例如,不绑定到范围)构建图表。有关示例,请参见。