【发布时间】:2017-12-17 03:02:57
【问题描述】:
在 sheet("Cost") 中,下面的代码中注释了一个错误。错误解决后,我计划在每个图表中放置一个“c(x)”计数器
运行时错误“1004”: 对象“_Worksheet”的方法“范围”失败
我认为错误与我引用另一张表的方式有关
Dim p As Worksheet, cost As Worksheet
Set cost = Workbooks("dashboard.xlsm").Worksheets("Cost")
Set p = Workbooks("dashboard.xlsm").Worksheets("p")
Dim c(1 To 3) As Variant
p.Activate
'[c(x)] denotes ranges for each chart object
'modified by counter [i], denoting ranges for each series
Set c(1) = p.Range(Cells(3, 1 + i), Cells(3, 1 + i).End(xlDown))
Set c(2) = p.Range(Cells(3, 4 + i), Cells(3, 4 + i).End(xlDown))
Set c(3) = p.Range(Cells(3, 8 + i), Cells(3, 8 + i).End(xlDown))
cost.Activate
For i = 1 To 2
With ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection(i)
'all charts follow same time series
.XValues = p.Range(Range("a3"), Range("a3").End(xlDown)) '**error here**
.Values = c(1)
End With
Next i
【问题讨论】:
-
尝试
.XValues = p.Range(p.Range("a3"), p.Range("a3").End(xlDown))以便所有范围都使用工作表进行限定。 -
太完美了;有效。但是,现在我遇到的问题是,系列 i=1 的循环上的 c(1) 被系列 i=2 的循环上的 c(1) 删除并覆盖。有什么建议吗?
-
您的 XValues 或 Values 在循环的每次迭代中都不会改变 - 对吗?
-
从头开始,问题是 Xvalues 被读取为两个系列的 XValues 和 Values
-
XValues 是常量,值应根据系列集合传入 i=1 或 i=2 到 c(1),它们将引用单独的列。我还用 p 限定了 c(1) 范围。您之前建议的地址
标签: vba excel loops excel-charts