VBA循环使用另一张表中的数据更新图表系列

在工作表(“成本”)中,下面的代码中有一个错误。 一旦错误得到解决,我打算把一个'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 

尝试replace你的行:

 .XValues = p.Range(Range("a3"), Range("a3").End(xlDown)) 

有:

 .XValues = "=" & p.Range(p.Range("a3"), p.Range("a3").End(xlDown)).Address(False, False, xlA1, xlExternal)