我目前正在處理一組代碼以將數據透視表過濾器設置爲某個日期範圍。在下面的代碼中,日期範圍是從2015年7月12日到2015年12月22日。在數據中僅存在12/7,8,11,18的日期。代碼將正確地標記文件中的這些項目,並按照預期在12/7之前省略和計算日期,但不知何故,它會在12/21/2015日期中提取,然後在Bolded代碼行中給我提供運行時錯誤。我的數據中沒有12/21/2015。這也是說pi.visible應該是錯誤的,我認爲這是錯誤發生的地方,因爲沒有12/21/2015標記爲可見或不可見。有什麼建議?比較數據透視表項值時的運行時1004錯誤
Dim ws As Worksheet, pt As PivotTable, pf As PivotField, pi As PivotItem
Dim dCurrentDate As Date, dPastDate As Date
dCurrentDate = Date
dPastDate = Date - 15
Set ws = Sheets("Sheet2")
Set pt = ws.PivotTables("PivotTable1")
Set pf = pt.PivotFields("Date")
With pf
.ClearAllFilters
For Each pi In pf.PivotItems
If pi.Value = "(blank)" Then
Else
If pi.Value <= dCurrentDate And pi.Value >= dPastDate Then
**pi.Visible = True**
Else
pi.Visible = False
End If
End If
Next
End With
'PivotTableOptions> Data'選項卡。確保'保留從數據源中刪除的項目>每個字段保留的項目數:'設置爲**無**。否則,緩存將保留可能已經存儲的過去的舊值,並將檢查它們的值,即使在數據中沒有看到它們。 –
@ScottHoltzman - 非常感謝。這解決了我遇到的錯誤。 – Emmerson