gpt4 book ai didi

vba - 循环通过报告过滤器来更改可见性不起作用

转载 作者:行者123 更新时间:2023-12-02 10:01:02 26 4
gpt4 key购买 nike

我正在尝试选择一个报告过滤器,在本例中为加拿大。这意味着其余部分必须变得不可见。此代码可以正常运行:

Public Sub FilterPivotTable()

With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")

.PivotItems("Canada").Visible = True
.PivotItems("USA").Visible = False
.PivotItems("Germany").Visible = False
.PivotItems("France").Visible = False

End With

End Sub

但是,我正在努力为我们将其他国家/地区添加到“流行病学”数据透视表中做好准备,因此我尝试使用 for 循环。此代码不起作用:

With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")

.PivotItems("Canada").Visible = True

For Each Pi In .PivotItems
If Pi.Value = "CANADA" Then
Pi.Visible = True
Else
Pi.Visible = False
End If
Next Pi

End With

它在 Pi.Visible = False 行上给了我一个错误。我收到的错误是运行时错误'1004':无法设置 PivotItem 类的 Visible 属性

为什么它在 for 循环中不起作用?!

令人沮丧的是,我在网上找到的所有示例都使用类似的语法。 (有些使用索引,但我尝试了并得到了相同的错误。)

最佳答案

这就是你正在尝试的吗?

Sub Sample()
Dim Pi As PivotItem

With ActiveSheet.PivotTables("Epidemiology").PivotFields("COUNTRY")

.PivotItems("Canada").Visible = True

For Each Pi In .PivotItems
If UCase(Pi.Value) = "CANADA" Then
Pi.Visible = True
Else
Pi.Visible = False
End If
Next Pi
End With
End Sub

关于vba - 循环通过报告过滤器来更改可见性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com