簡體   English   中英

如何在不清除 Excel VBA 上的數據透視表字段的情況下更新數據透視表?

[英]How to update pivot data without clearing PivotTable Fields on Excel VBA?

我當前的代碼似乎正在更新源數據范圍,但它正在清除字段和過濾器。 有什么辦法可以避免嗎?

sub update_pivot()

'change data range for pivot
   Dim EndRow As Integer
   Dim DataRange As Range
   Dim NewRange As String
   Dim Data_Sheet As Worksheet
   Dim Pivot_Sheet As Worksheet


   Set Data_Sheet = Workbooks(myfile).Worksheets("Consolidation")
   Set Pivot_Sheet = Workbooks(myfile).Worksheets("Consolidation Pivot")


' find the last row in my data sheet
   Data_Sheet.Select    
   EndRow = Cells(Rows.Count, "A").End(xlUp).Row

   Set DataRange = Data_Sheet.Range("$A$1:$I" & EndRow)
   NewRange = Data_Sheet.Name & "!" & DataRange.Address(ReferenceStyle:=xlR1C1)

   Pivot_Sheet.Select
   Pivot_Sheet.PivotTables("PivotTable6"). _
   ChangePivotCache ActiveWorkbook. _
   PivotCaches.Create(SourceType:=xlDatabase, SourceData:=NewRange)

' Ensure Pivot Table is Refreshed
   Pivot_Sheet.PivotTables("PivotTable6").RefreshTable

End Sub

根據我的經驗,有必要添加首選字段和過濾器。 我相信設置存儲在 .PivotCache 中,其中更改緩存不會預先確定任何字段或過濾器。

我的解決方案是結束宏:

With Pivot_Sheet("PivotTable6")
   .AddDataField .PivotFields("VariableName1")
   .AddRowFields:=Array("VariableName2")
   .RefreshTable
End with

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM