Excel VBA .AddChart方法' SetSource数据'对象' _chart'失败

时间:2016-07-22 16:26:23

标签: excel vba excel-vba

我试图在我的电子表格中插入图表,如msdn中所述:

https://msdn.microsoft.com/en-us/library/bb238877(v=office.12).aspx

不幸的是我在

中收到错误
  

方法' SetSource数据'对象' _chart'失败

在从ActiveChart开始的行上。它为什么这样做?我在这里尝试过字符串和范围变量都无济于事。

除了我无法使用此方法之外,我不喜欢您需要选择图表的事实,当然还有更好的方法吗?

Function TimeSeries(rngToPrint As Range)
    Dim strRange As String
    Dim rngChart As Range

    lngstartrow = 8
    lngendrow = Range("a10000").End(xlUp).Row
    Range("$A$" & CStr(lngstartrow) & ":$B$" & CStr(lngendrow)).Select
    Sheets(rngToPrint.Worksheet.Name).Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("$A$" & CStr(lngstartrow) & ":$B$" & CStr(lngendrow)), PlotBy:=xlLine

End Function

2 个答案:

答案 0 :(得分:2)

PlotBy参数指定是按行还是按列绘制数据。因此,参数应设置为xlRows或xlColumns。

答案 1 :(得分:0)

错误出现在以下行,因为没有PlotBy:=xlLine

将其修改为:

ActiveChart.SetSourceData Source:=Range("$A$" & CStr(lngstartrow) & ":$B$" & CStr(lngendrow)), PlotBy:=xlRows

或者是:

ActiveChart.SetSourceData Source:=Range("$A$" & CStr(lngstartrow) & ":$B$" & CStr(lngendrow)), PlotBy:=xlColumns