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

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

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

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

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

我现在得到运行时错误438.有人可以帮助我,并帮助我了解发生了什么事情。 提前感谢!

不需要使用任何Activate东西。 你试图摆脱它是正确的。 只需要稍作修改:

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