VBA错误:获取运行时错误'91':对象变量或未设置块变量尝试更改图表数据时

时间:2017-07-20 18:51:50

标签: excel vba charts

我正在尝试将现有工作簿的两个工作表复制到新工作簿。其中一张纸有图表。这些图表仍然引用旧工作簿,我想将数据源更改为新文件(我复制的第二张表是数据表)。我写了下面的代码,我收到了上面提到的错误

NewBook.Sheets(1).Activate
    ActiveWorkbook.ActiveSheet.ChartObjects("Chart 2").Activate
     ActiveChart.SetSourceData Source:=NewBook.Sheets(2).Range("B14:E20")

我认为错误可能是当我选择图表并更改数据时,之前的工作簿被激活,因此不再有活动工作表。所以我尝试了这段代码

NewBook.Sheets(1).Charts("Chart 2").SetSourceData Source:=NewBook.Sheets(2).Range("B5:F11")

我现在收到运行时错误438.有人可以帮我解决这个问题并帮助我了解正在发生的事情。非常感谢提前!

1 个答案:

答案 0 :(得分:1)

无需使用任何Activate内容。你试图摆脱它是正确的。只需要稍加修改即可:

NewBook.Sheets(1).ChartObjects("Chart 2").Chart.SetSourceData _
  NewBook.Sheets(2).Range("B5:F11")