0

如果 Sheet1 范围发生变化,我希望图表范围发生变化。范围从第 5 行开始,可以在任何其他行结束。试过这个:

Option Explicit

Sub Change_Chart()
Application.ScreenUpdating = False

Dim x As Range, y As Range

Set x = Sheets("Sheet1").Range("B5", Range("B5").End(xlDown))
Set y = Sheets("Sheet1").Range("Q5", Range("Q5").End(xlDown))

ActiveChart.ChartArea.Select
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(x, y)

Application.ScreenUpdating = True
End Sub

它可以编译,但是当它运行时错误显示“对象'_Global'的方法'范围'失败”

4

1 回答 1

0

尝试更改最后一行代码:

ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(ChartRangex.address & _
                             "," & ChartRangey.Address)

或此修改:

ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Union(ChartRangex, ChartRangey).Address)

编辑:我对Set line错误有一个想法(根据下面的评论):

我知道并且知道可能出了什么问题。把它Set line改成这样:

Set x = Sheets("Sheet1").Range(Sheets("Sheet1").Range("B5"), Sheets("Sheet1").Range("B5").End(xlDown))`

并对另一个做同样的事情Set line

于 2013-08-02T18:47:42.963 回答