1

私は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")

ただし、他の行をループするには、セルへの変数参照が必要です(まだ実装されていません)。

私は何か間違ったことをしていますか?回避策はありますか?

4

0 に答える 0