我有一张带有现有图表和适当动态命名范围的工作表,可以为该图表提供正确的数据。
我的问题是工作表是一个被复制的模板,并且副本的图表不再指向命名范围。命名范围被复制到工作表(范围是工作表特定的),所以看起来应该只是更新系列源数据的问题。当我手动记录时,良好的旧记录给了我以下语法:
ActiveChart.SeriesCollection(1).XValues = "=='Risk 1'!PDates"
ActiveChart.SeriesCollection(1).Values = "=='Risk 1'!Plan"
ActiveChart.SeriesCollection(2).XValues = "=='Risk 1'!ADates"
ActiveChart.SeriesCollection(2).Values = "=='Risk 1'!Actuals"
我尝试使用修改后的版本将它们重置为命名范围:
For Each Cht In TempSheet.ChartObjects
'Series 1 is the Plan
Cht.Activate
ActiveChart.SeriesCollection(1).XValues = "=='" & TempSheet.Name & "'!PDates"
ActiveChart.SeriesCollection(1).Values = "=='" & TempSheet.Name & "'!Plan"
'Series 2 is the Actuals
ActiveChart.SeriesCollection(2).XValues = "=='" & TempSheet.Name & "'!ADates"
ActiveChart.SeriesCollection(2).Values = "=='" & TempSheet.Name & "'!Actuals"
Next
我在尝试更新第一个系列的 X 值的语句中遇到错误“应用程序定义的或对象定义的错误”。
我也尝试在其中添加 PlotArea select 语句,以防万一这是问题,但这并没有解决问题。我检查了集合应该设置为正确评估的语句(例如,"=='" & TempSheet.Name & "'!PDates"
评估为“=='Risk 1'!PDates”,这是该系列应该指出的)。
有了这个,我很困惑,并会感谢任何人可以提供的任何帮助。提前致谢!