我一直在嘗試創建子,它通過選擇幾個條形碼來幫助過濾商品清單。我知道我可以手動完成,但它非常漫長而令人沮喪,因爲大約有2000個獨特的條形碼。我記錄了一個宏,並在這裏發現了一些類似的答案,但是我收到一個錯誤「運行時錯誤'1004':應用程序定義的或對象定義的錯誤'當PI.value被賦值爲true或false時, .Visible = True; Pi.Visible =假」Excel VBA數據透視表通過條形碼過濾
代碼:
私人小組CommandButton1_Click()
Dim MyNames() As Variant Dim objPivotField As PivotField Dim i As Long Dim PI As PivotItem Set objPivotField = _ ActiveSheet.PivotTables("PivotTable1").PivotFields(Index:="[Prekė].[Barkodas].[Barkodas]") MyNames = Array("4770349225872", "4770033220077", "7622400004773") With ActiveSheet.PivotTables("PivotTable1").PivotFields(Index:="[Prekė].[Barkodas].[Barkodas]") For i = LBound(MyNames) To UBound(MyNames) For Each PI In .PivotItems If PI.Name = MyNames(i) Then PI.Visible = True Else PI.Visible = False End If Next PI Next i End With End Sub
而這裏的宏,我錄過濾:
ActiveSheet.PivotTables("PivotTable1").PivotFields(_ "[Prekė].[Barkodas].[Barkodas]").VisibleItemsList = Array("", _ "[Prekė].[Barkodas].&[4750398000132]", "", "[Prekė].[Barkodas].&[4046234141238]", _ "[Prekė].[Barkodas].&[4770248342625]")
你能發佈更多關於數據透視表的設置嗎?我嘗試了一個與你的邏輯類似的小例子,它工作,但我用ActiveSheet.PivotTables(「PivotTable1」)。PivotFields(「Barkodas」) –
此外,通過條形碼循環一次,檢查每個PivotItem對MyNames會更快比循環條碼三次,每次檢查一個條形碼 –