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' のメソッド 'Range' が失敗しました」というエラーが表示されます。

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 に答える