私はVBAが初めてで、シートAのデータを使用してシートBにグラフを作成するマクロを作成しようとしています.これまでの私のコードは次のとおりです:
Sub test()
Application.ScreenUpdating = False
Sheets("Projekte_RK").Activate
ProjectRow = 6
ProjectCol = 3
sumCol = 2
' evaluate travel cost sums to include only those over 1000 Euro
If Evaluate(Sheets("Projekte_RK").Cells(ProjectRow, sumCol).Formula) > 1000 Then
MsgBox Evaluate(Sheets("Projekte_RK").Cells(ProjectRow, sumCol).Formula)
Sheets("Auswertung").Activate
Sheets("Auswertung").ChartObjects(2).Activate
' create new series for the projects with over 1000 Euro travel costs
With ActiveChart.SeriesCollection.NewSeries
.Name = Sheets("Projekte_RK").Cells(ProjectRow, ProjectCol)
.Values = Sheets("Projekte_RK").Range(Cells(ProjectRow, 4), Cells(ProjectRow, 32))
.XValues = Sheets("Projekte_RK").Range(Cells(3, 4), Cells(3, 32))
'.Values = Sheets("Projekte_RK").Range("D6:AF6")
'.XValues = Sheets("Projekte_RK").Range("D3:AF3")
End With
Else
MsgBox "hello world"
End If
End Sub
実行すると、次の行に実行時エラー 1004 (アプリケーション定義またはオブジェクト定義エラー) が表示されます。
.Values = Sheets("Projekte_RK").Range(Cells(ProjectRow, 4), Cells(ProjectRow, 32))
.XValues = Sheets("Projekte_RK").Range(Cells(3, 4), Cells(3, 32))
そのため、 Sheets("Projekte_RK"). Range(Cells(ProjectRow, 4), Cells(ProjectRow, 32)) は、対応するシートがアクティブな場合に機能しますが、チャートをアクティブにする必要があるため、私のコードでは不可能です値を追加します。
エラーが発生する部分を置き換えると、完全に実行されます
.Values = Sheets("Projekte_RK").Range("D6:AF6")
.XValues = Sheets("Projekte_RK").Range("D3:AF3")
ただし、他の行をループするには、セルへの変数参照が必要です(まだ実装されていません)。
私は何か間違ったことをしていますか?回避策はありますか?