Ваша «Дата отправки по расписанию» содержит отдельные даты, и вы хотите использовать ее в качестве фильтра.
Затем вы можете либо показать CurrentPage
(это только отдельная дата и считается нежелательной), либо выпереключите видимость каждого PivotItem следующим образом:
With pvt2.PivotFields("Scheduled Ship Date")
.Orientation = xlPageField
.Position = 1
End With
With pvt2.PivotFields("Item Type")
.Orientation = xlPageField
.Position = 2
End With
With pvt2.PivotFields("Quantity Ordered")
.Orientation = xlDataField
End With
pvt2.PivotFields("Item Type").ClearAllFilters
pvt2.PivotFields("Item Type").CurrentPage = "KIT"
Dim pi As PivotItem
pvt2.PivotFields("Scheduled Ship Date").ClearAllFilters
pvt2.PivotFields("Scheduled Ship Date").EnableMultiplePageItems = True
For Each pi In pvt2.PivotFields("Scheduled Ship Date").Pivotitems
If Year(pi.Value) <> 2019 Then pi.Visible = False
Next pi
Имейте в виду, что хотя бы один элемент должен оставаться видимым, поэтому, если у вас нет даты с 2019 года, вы получите ошибку.
Фильтры даты работают только с полями строки или столбца (НЕ в вышеупомянутом решении, где значения даты являются полем страницы).Если вы добавите «Дата отправки по расписанию» в качестве поля строки, можно использовать либо:
pvt2.PivotFields("Scheduled Ship Date").PivotFilters.Add2 _
Type:=xlDateThisYear
, либо следующее:
pvt2.PivotFields("Scheduled Ship Date").PivotFilters.Add2 _
Type:=xlDateBetween, _
Value1:="01.01.2019", _
Value2:="31.12.2019", _
WholeDayFilter:=True