尝试从其他工作表VBA生成图形时发生错误

时间:2018-08-21 18:13:10

标签: vba excel-vba

我有一组代码,有时 会产生错误。

代码的作用
该代码从另一个电子表格获取固定范围的值。然后,这些值仅用于创建散布图。并将图形粘贴到当前工作表上。

错误消息

The error box I am getting

该代码是运行时错误'-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

该代码是从另一个子代码中调用的,但是,我认为调用该代码的条件并不存在问题。

编辑
发生此错误时,无论出于何种原因,它都会尝试从应该粘贴图形的工作表中获取值。这意味着它甚至没有查看正确的电子表格。

1 个答案:

答案 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