0

我有一张带有现有图表和适当动态命名范围的工作表,可以为该图表提供正确的数据。

我的问题是工作表是一个被复制的模板,并且副本的图表不再指向命名范围。命名范围被复制到工作表(范围是工作表特定的),所以看起来应该只是更新系列源数据的问题。当我手动记录时,良好的旧记录给了我以下语法:

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”,这是该系列应该指出的)。

有了这个,我很困惑,并会感谢任何人可以提供的任何帮助。提前致谢!

4

2 回答 2

0

如果“模板”工作表包含您想要的数据和图表,但带有虚拟数据,请将其另存为官方 Excel 模板。然后,当您需要其中一张工作表时,右键单击工作表选项卡并单击插入... 在对话框中选择模板并单击确定。当根据模板插入此工作表时,其图表将链接到工作表中的名称。

于 2015-03-23T20:58:54.863 回答
0

与其使用试图成为范围的字符串,不如尝试一个真正的范围,然后获取它的值:

ActiveChart.SeriesCollection(1).XValues = TempSheet.Range("PDates").Value

(ETC)

于 2014-08-20T19:06:21.927 回答