【问题标题】:VBA change Pivot Table Source SheetVBA更改数据透视表源表
【发布时间】:2020-01-20 18:19:47
【问题描述】:

我创建了一个从另一个工作簿复制数据透视表的程序,但我需要它来引用当前文件中的工作表。

例如,在原始文件中它引用“QueryResults”作为源,我需要它在传输后引用新文件中的“QueryResults”。有人对如何做到这一点有任何想法吗?

我尝试重新创建缓存失败,但在我的代码中运行它时出错。

        ActiveWorkbook.PivotCaches.Create _
        (SourceType:=xlDatabase, SourceData:=Worksheets("QueryResults").Range("A1:AY" & _
        Worksheets("QueryResults").Cells(Rows.Count, 1).End(xlUp).Row).Address(External:=True), _
        Version:=xlPivotTableVersion14)

【问题讨论】:

    标签: excel vba pivot-table


    【解决方案1】:

    试试

    Sub setPivot()
        Dim pv As PivotTable
        Dim Ws As Worksheet
        Dim wsData As Worksheet
        Dim rngDB As Range, strRng As String
        Dim r As Long
    
        Set Ws = ActiveSheet
        Set pv = Ws.PivotTables(1)
    
        Set wsData = Sheets("QueryResults")
    
        With wsData
            r = .Range("a" & Rows.Count).End(xlUp).Row
            Set rngDB = .Range("A1:AY" & r)
        End with
        strRng = rngDB.Address(, , xlR1C1, 1) 'not xlA1
        With pv
            .SourceData = strRng
            .RefreshTable
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 2018-08-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多