首页 > 解决方案 > 数据透视表中的 VBA 更新日期

问题描述

我目前有一个包含原始数据的工作簿,该工作簿被转换为数据透视表进行分析。需要将此数据截断到特定的日期范围。我正在尝试半自动化更新,因为某些工作表被隐藏但不断出现错误


Dim PVTCombo As Worksheet, PVTFull As Worksheet, PVTOnly As Worksheet
Dim ExtDue As PivotField, Table1 As PivotTable
Dim StartDate As String, EndDate As String

Set PVTCombo = ThisWorkbook.Sheets("PVT - Combined")
Set Table1 = PVTCombo.PivotTables("PivotTable1")
Set ExtDue = Table1.PivotFields("External Due")

StartDate = InputBox("Please input start date mm/dd/yyyy", "Start Date")
EndDate = InputBox("Please input end date mm/dd/yyyy", "End Date")

ExtDue.ClearAllFilters
ExtDue.Add2 Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate

ThisWorkbook.RefreshAll
Calculate

我收到第 10 行的以下错误“对象不支持此属性或方法”

我尝试过.Add.Add2和使用FilterType vs Type 我也尝试过硬编码 Value1 和 Value2 而不是输入变量

标签: excelvba

解决方案


ExtDue是一个PivotField。错误消息很简单:没有AddAdd2方法 a PivotField。您正在寻找PivotFilters.Add或类似的.Add2.

ExtDue.PivotFilters.Add2 Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate

推荐阅读