0
我正在編寫一個宏,以根據 年份過濾器更改我的數據透視表中的數據。只要數據透視表中的數據在以下字符串格式的2年 - 月 之內,就應該顯示。使用VBA按日期間隔過濾數據透視表
2016 - 01
2016 - 05
日期間隔也是這種格式。 這根本沒有更新數據透視表。我感謝任何反饋或替代更新數據透視表給定兩個日期間隔作爲其過濾器。
私人小組Worksheet_Change(BYVAL目標作爲範圍)
Dim shPT As Worksheet
Dim pt As PivotTable
Dim pi As PivotItem
Dim d As Date
Dim dStart As Date
Dim dEnd As Date
'' G4 and G7 are the cell locations of the start and ending year-months.
dStart = DateSerial(Left(Range("G4"), 4), Right(Range("G4"), 2), 15)
dEnd = DateSerial(Left(Range("G7"), 4), Right(Range("G7"), 2), 15)
'' Calendar Filter in the Pivot Tables
Dim strCal
strCal = "Date Entered UTC"
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Set shPT = ActiveWorkbook.Worksheets("PivotTables")
For Each pt In shPT.PivotTables
With pt.PageFields(strCal)
For Each pi In .PivotItems
'' Loop through all year-month for each pi.
For d = dStart To dEnd Step 30
If pi.Value = Year(d) & " - " & Month(d) Then
.CurrentPage = Year(d) & " - " & Month(d)
Exit For
Else
.CurrentPage = "(All)"
End If
Next d
Next pi
End With
Next pt
Application.EnableEvents = True
Application.ScreenUpdating = True
結束子