我正在增强工作模板,该模板要求用户每周创建一个新文件,以便能够每周跟踪进度,因此该文件将每周更改名称。
该文件在“摘要”工作表中大约包含3个图表。
在此“摘要”工作表中,条形图#2当前具有5个系列。我正在编写能够添加第6个系列的脚本。...这没问题。
我希望新的Series值使用模板当前在其他工作表中定义的单元格的Name Range中的值。
我还希望“水平轴标签”使用模板在不同的工作表中也定义的单元格的“名称范围”。
这是我到目前为止的代码:
Sub add_software()
'Update software Trend in Summary
Sheets("Summary").SelectActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.SeriesCollection.NewSeriesActiveChart.FullSeriesCollection(6).Name = "='Summary'!$C$44"
'MY PROBLEM IS HERE
ActiveChart.FullSeriesCollection(6).Value = ActiveWorkbook.Sheets("Summary").Range("Software")
ActiveChart.FullSeriesCollection(6).XValues = ActiveWorkbook.Sheets("Summary").Range("dates")
End sub
我希望脚本将使用这些“名称范围”中的值(与其他5个系列中使用的值相同),并使用名称范围中的值进行填充。
这是我得到的错误:
运行时错误'438':
对象不支持此属性或方法 错误
答案 0 :(得分:0)
尝试使用另一种方法来获取范围。未经测试,但应该可以。
ActiveChart.FullSeriesCollection(6).Value = ThisWorkbook.Names("Software").RefersToRange
ActiveChart.FullSeriesCollection(6).XValues = ThisWorkbook.Names("dates").RefersToRange
编辑:“名称”之后有一个额外的点。
答案 1 :(得分:0)
@RicardoA接受的解决方案可以很好地工作,但是它假定名称的静态定义,并将每个名称的当前地址放入系列的SERIES公式中。如果名称是动态的,则SERIES公式将无法跟上更改。下面将名称而不是名称的地址放入系列公式中:
ActiveChart.SeriesCollection(6).XValues = "='" & ThisWorkbook.Name & "'!dates"
ActiveChart.SeriesCollection(6).Values = "='" & ThisWorkbook.Name & "'!software"
答案 2 :(得分:-1)
你有错字。您错过了一个“
你在哪里
.Range("Software)
替换为
.Range("Software")
祝你好运