我已经创建了一个程序,该程序可以从另一个工作簿的数据透视表上进行复制,但是我需要它来引用当前文件中的工作表。
因此,例如,在原始文件中,它以“ 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)
答案 0 :(得分:0)
尝试
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