我正在尝试选择一个报告过滤器,在本例中为加拿大。这意味着必须使其余部分不可见。此代码可以正常工作:
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
在线错误。我得到的错误是Run-time error '1004': Unable to set the Visible property of the PivotItem class
为什么它不能在 for 循环中工作?!
令人沮丧的是,我在网上找到的所有示例都使用类似的语法。(有些使用索引,但我尝试过并得到了同样的错误。)