Excel VBA更改数据透视表的数据源

4
好的,我已经浏览了大量的帖子,但仍然无法运行我的代码。 我正在尝试创建对账报告,这一部分已经很好地运行了。 但问题出在我正在尝试将每个月的报告粘贴到主对账文件中时。 我已经把所有东西完美地处理好了,除了一个问题:我无论如何都无法弄清楚为什么我的数据透视表源代码不会改变。
当前代码的错误:
“运行时错误'1004':应用程序或对象定义的错误”
有什么建议吗? :-\
    Dim SrcData As String
    Dim PivTbl As PivotTable

    SrcData = ActiveSheet.Name & "!" & Range("$A$1:$H$" & LastRow).Address(ReferenceStyle:=xlR1C1)

    On Error Resume Next
        Set PivTbl = Sheets("Report").PivotTables("ReportPivot")
    On Error GoTo 0
        If PivTbl Is Nothing Then
            'create pivot
        Else
            ActiveWorkbook.PivotTables(PivTbl).ChangePivotCache ActiveWorkbook. _
            PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData, _
            Version:=xlPivotTableVersion15)

            PivTbl.RefreshTable
        End If

错误在哪一行? - Daniel Möller
请考虑仅使用 ActiveSheet.Range("$A$1:$H$" & lastrow)。确保 lastrow 存在。 - Daniel Möller
它正在突出显示Else语句下的整个部分(刷新代码除外)。 - Meghan Anderson
我尝试过了,还是同样的错误。每次运行时,我都会在调试中打印最后一行,只是为了确保它确实存在! :-) - Meghan Anderson
1个回答

4

由于问题出现在这里:

 ActiveWorkbook.PivotTables(PivTbl).ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData, _
        Version:=xlPivotTableVersion15)

我猜你不能将表格本身作为参数传递给数据透视表:.PivotTables(PivTbl)

PivTbl已经是你想要的表格。

PivTbl.ChangePivotCache.......

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接