我试图选择一个报告过滤器,在这种情况下是加拿大。这意味着其余部分必须隐形。 此代码的工作没有问题:循环显示报告过滤器以更改可见性不起作用
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循环内不起作用?
令人沮丧的是,我在网上找到的所有例子都使用类似的语法。 (有些使用索引,但我试过并得到相同的错误。)
@ user1507455嗨,我试了相同的代码。但它不适合我。你可以请解决它:http://stackoverflow.com/questions/38571986/error-1004-unable-to-set-the-visible-property-of-the-pivotitem-class – Pramod
@SiddharthRout你能帮忙吗? – Pramod