PivotItem.Visible似乎总是如此

时间:2017-03-24 13:58:25

标签: excel vba pivot pivot-table

我有以下的pivottable:

Rowlables: - 存储 - OrderID - 文章

Columnlables: - 状态

价值标签: - 数量

在枢轴之上,我有 StoreGroup 的切片器。对于此示例,让我们说明每个商店都在 A B 组中,并且我已将切片器设置为显示 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 的那些。

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

1 个答案:

答案 0 :(得分:1)

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

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