获取数据透视 table 自定义筛选行标签中的标准值

Get the criteria value in a pivot table custom-filtered row label

数据透视 table 中的 TGL 行标签使用自定义过滤器进行过滤,如下图所示。

我需要的是 vba 代码来了解 TGL 过滤的标准值是什么。
(在这种情况下,条件值为“2022 年 1 月 1 日”),因此我不需要 运行 带有冗余代码的宏,例如下面的 sub test1 :

Sub test1()
Dim dt As String
dt = Format(DateAdd("m", -2, Format("01/" & Month(Date) & "/" & Year(Date))), "dd-mmmm-yyyy")

With ActiveSheet.PivotTables("ptHarga").PivotFields("TGL")
    .ClearAllFilters
    .PivotFilters.Add Type:=xlAfterOrEqualTo, Value1:=dt
End With
  
End Sub

虽然它不会伤害我,但是子 test1 一次又一次地用相同的标准过滤 TGL,尽管 TGL 的先前条件已经用那个标准过滤了。

所以我制作了一个涉及 IF.... 的 sub :

Sub test2()
Dim dtNow As Date
dtNow = Format(DateAdd("m", 1, Format("01/" & Month(Date) & "/" & Year(Date))), "dd-mmm-yyyy")

With ActiveSheet.PivotTables("ptHarga").PivotFields("TGL")
    For Each pit In .PivotItems
        If DateDiff("m", CDate(pit), dtNow) = 3 Then Call test1: Exit For
    Next
End With
  
End Sub

在sub test2中,dtNow只是用来假设2022年4月的宏是运行, 如果与任何 TGL 数据透视项的月份差为 3,则应将条件更改为“2022 年 2 月 1 日”(调用 test1)。

我也尝试过使用 application.min 的另一个 sub,没有循环。

Sub test3()
Dim dtNow As Date
dtNow = Format(DateAdd("m", 1, Format("01/" & Month(Date) & "/" & Year(Date))), "dd-mmm-yyyy")

With ActiveSheet.PivotTables("ptHarga").PivotFields("TGL")
    .ClearAllFilters
    If DateDiff("m", CDate(Application.Min(.DataRange)), dtNow) = 3 Then Call test1
End With
  
End Sub

出于好奇,我的问题是:
有没有代码可以直接获取pivottable字段当前过滤的TGL中的criteria值?

如有任何回复,我们将不胜感激。
先谢谢你了。

例如:

Dim pt As PivotTable, pf As PivotField

Set pt = ActiveSheet.PivotTables(1)
With pt.PivotFields("Date").PivotFilters(1)
    Debug.Print "Type", .FilterType
    Debug.Print "Value1", .Value1
End With

参见:https://docs.microsoft.com/en-us/office/vba/api/excel.pivotfilter