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