如果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'的方法'范围'失败了”
答案 0 :(得分: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
执行相同操作。