从不同工作表(VBA)向图表添加新系列

时间:2013-06-18 15:12:21

标签: vba excel-vba charts range series

我是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循环遍历其他行(尚未实现)。

我做错了吗?有解决方法吗?

0 个答案:

没有答案