我是 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")
但是我需要对单元格的变量引用来循环其他行(尚未实现)。
难道我做错了什么?有解决方法吗?