PivotItem.Visible 似乎总是正确的
PivotItem.Visible seems always true
我有以下数据透视表:
Rowables:
- 店铺
- 订单号
- 文章
列标签:
- 状态
值标签:
- 数量
在枢轴上方,我有一个 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.
的
我的问题:如何知道订单是否被隐藏?
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
此代码检查数据范围行是否隐藏
我有以下数据透视表:
Rowables: - 店铺 - 订单号 - 文章
列标签: - 状态
值标签: - 数量
在枢轴上方,我有一个 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.
的我的问题:如何知道订单是否被隐藏?
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
此代码检查数据范围行是否隐藏