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