我正在尝试将现有工作簿的两个工作表复制到新工作簿。其中一张纸有图表。这些图表仍然引用旧工作簿,我想将数据源更改为新文件(我复制的第二张表是数据表)。我写了下面的代码,我收到了上面提到的错误
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.有人可以帮我解决这个问题并帮助我了解正在发生的事情。非常感谢提前!
答案 0 :(得分:1)
无需使用任何Activate
内容。你试图摆脱它是正确的。只需要稍加修改即可:
NewBook.Sheets(1).ChartObjects("Chart 2").Chart.SetSourceData _
NewBook.Sheets(2).Range("B5:F11")