如何使Excel VBA中的多个pivotitem不可见

我在工作表“EX”中有一个数据透视表。 在“报告filter”字段中,我有“国家代码”,其中包含200个国家。 我想使用InputBox从该filter中删除(使不可见)超过1个国家/地区。 我用下面的代码,它不工作。 它不是来“如果InStr”线。 帮我

Sub Removecountries() Dim str1 As Variant Dim Data As Variant Dim ws As Worksheet Set ws = Sheets("Ex") str1 = Application.InputBox("Enter the Country - comma separated") If str1 = False Then MsgBox "Please Enter one Country", , "Filter Country" Exit Sub Else If InStr(1, str1, ",") > 0 Then Data = Split(str1, ",") With ws.PivotTables("RemoveTable").PivotFields("Country Code").PivotItems(Data(0)).Visible = False End With End If End If End Sub 

我刚才testing了下面,它似乎工作,这个问题似乎是,当你只在input框中input一个项目:(在你尝试之前,确保你编辑“ws.PivotTable”,因为我改变了名称时testing它)

 Sub Removecountries() Dim str1 As Variant Dim Data As Variant Dim ws As Worksheet Set ws = Sheets("Ex") str1 = Application.InputBox("Enter the Country - comma separated") If str1 = False Then MsgBox "Please Enter one Country", , "Filter Country" Exit Sub Else ws.PivotTables("PivotTable1").PivotFields("CountryCode").ClearAllFilters If InStr(1, str1, ",") > 0 Then Data = Split(str1, ",") For i = LBound(Data) To UBound(Data) ws.PivotTables("PivotTable1").PivotFields("CountryCode").PivotItems(Data(i)).Visible = False Next i Else ws.PivotTables("PivotTable1").PivotFields("CountryCode").PivotItems(str1).Visible = False End If End If End Sub