excel - 使用数组检查 PivotItems.Name <> Array Then PivotItems.Visible = False

标签 excel vba

我正在尝试使用数组来检查数据透视表中过滤的数据透视项目,看看它是否应该可见。目前我用下面的代码对其进行了硬编码。但是,当我有一个以上的项目来检查过滤器时,我想使用一个数组。

目标是仅过滤所需的项目。

Supply = Array("X Marketplace", "Y Marketplace")

With PivFid
    For i = 1 To .PivotItems.Count
        If .PivotItems(i).Name <> "X Marketplace" Then .PivotItems(i).Visible = False
    Next i
End With

这是我想要完成的事情,但我不确定如何针对过滤的项目循环遍历数组。
With PivFid
    For i = 1 To .PivotItems.Count
        If .PivotItems(i).Name <> Supply Then .PivotItems(i).Visible = False
    Next i
End With

最佳答案

您可以使用 Application.Match检查它。结合 IsError在它前面,它将检查当前的 PivotItem在整个 Supply 中找不到名称大批)。

代码

Supply = Array("X Marketplace", "Y Marketplace")

With PivFid
    For i = 1 To .PivotItems.Count
        If IsError(Application.Match(.PivotItems(i).Name, Supply, 0)) Then .PivotItems(i).Visible = False
    Next i
End With

以防万一你需要展示其他的:
With PivFid
    For i = 1 To .PivotItems.Count
        If IsError(Application.Match(.PivotItems(i).Name, Supply, 0)) Then
            .PivotItems(i).Visible = False
        Else
            .PivotItems(i).Visible = True
        End If
    Next i
End With

关于excel - 使用数组检查 PivotItems.Name <> Array Then PivotItems.Visible = False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56779073/

相关文章:

excel - 如何从开始编号和结束编号创建列表

c# - 电子表格齿轮和日期时间格式

Excel VBA 理解随机化语句

vba - 使用 VBA 检查字符串是否具有像 "/"和 ":"这样的 ascii

vba - 限制表中不正确的数据

java - 如何使用java将一个Excel单元格拆分为两个单元格

c# - vsto : c# change localization of Excel UI objects, 例如功能区,在运行时

excel - IF 语句中多个 AND 的类数组语句

vba - 将多个 .xls 文件合并到一张表中

excel - VBA - 如何使用 `With` 语句舍入范围内的值