PivotItem.Visible 似乎总是正确的

PivotItem.Visible seems always true

我有以下数据透视表:

Rowables: - 店铺 - 订单号 - 文章

列标签: - 状态

值标签: - 数量

在枢轴上方,我有一个 StoreGroup 的切片器。对于这个例子,让我们声明每个商店都在组 AB 中,并且我已将切片器设置为显示 仅 A。 1个订单不存在于多个门店。

在VBA中,我想遍历所有剩余的订单。这是我的代码:

Sub TEST()
  Dim pvt as PivotTable
  Set pvt = Sheets("Pivot").PivotTables("Orders")

  Dim pvf as PivotField
  Set pvf = pvt.PivotFields("OrderID")

  Dim pvi as PivotItem
  For Each pvi in pvf.PivotItems
    If pvi.Visible = True Then
      Debug.Print pvi.Value
    End if
  Next pvi
End Sub

当我 运行 这段代码时,所有现有的 OrderID 都会被列出,甚至那些具有 StoreGroup B.

我的问题:如何知道订单是否被隐藏?

Public Function ItemIsActive(pvtItem As PivotItem) As Boolean
    On Error GoTo ErrHandler
    ItemIsActive = Not pvtItem.DataRange.EntireRow.Hidden
Exit Function
ErrHandler:
    ItemIsActive = False
End Function

此代码检查数据范围行是否隐藏