我有一组代码,有时 会产生错误。
代码的作用
该代码从另一个电子表格获取固定范围的值。然后,这些值仅用于创建散布图。并将图形粘贴到当前工作表上。
错误消息
该代码是运行时错误'-2147221504(80040000)':每个图表的数据系列最大数目为255。
同样,仅在有时产生此错误。
代码
Dim GraphRange As Range
Dim cht As Shape
Set GraphRange = Sheets("This Sheet").Range("V10:W8013")
Set cht = Sheets("This Sheet").Shapes.AddChart2(, xlXYScatterSmoothNoMarkers)
With cht.Chart
.SetSourceData Source:=GraphRange
.FullSeriesCollection(1).Format.Line.Weight = 1.5
.ChartArea.Height = 520
.ChartArea.Width = 400
.Axes(xlCategory).ReversePlotOrder = True
.ChartTitle.Text = "The Graph"
End With
该代码是从另一个子代码中调用的,但是,我认为调用该代码的条件并不存在问题。
编辑
发生此错误时,无论出于何种原因,它都会尝试从应该粘贴图形的工作表中获取值。这意味着它甚至没有查看正确的电子表格。
答案 0 :(得分:0)
到目前为止,这对我一直有效...我在.SetSourceData中的PlotBy:= xlColumns
Sub CreateGraph()
Dim GraphRange As Range
Dim cht As Shape
Set GraphRange = Sheets("This Sheet").Range("V10:W8013")
Set cht = Sheets("This Sheet").Shapes.AddChart2(, xlXYScatterSmoothNoMarkers)
With cht.Chart
.SetSourceData Source:=GraphRange, PlotBy:=xlColumns
.SeriesCollection(1).Format.Line.Weight = 1.5
.ChartArea.Height = 520
.ChartArea.Width = 400
.Axes(xlCategory).ReversePlotOrder = True
.ChartTitle.Text = "My Graph"
End With
End Sub