我被困在這個問題上,無法弄清楚它是我做錯了什麼。我正在編寫一個宏來循環透視表中的可見字段,查找那些已過濾的字段中的項目,然後將這些過濾器應用到源數據表。我遇到的特殊問題涉及應該在字段中查找的循環,找到可見的透視項目,然後將這些項目存儲爲變量。如果所有透視項都可見,我一直在試圖終止循環。下面是我到目前爲止有:如果然後通過樞軸項目循環
Sub PivotTest2()
Dim pi As PivotItem
Dim count As Integer
Dim available As Integer
Dim row As Integer
available = ActiveSheet.PivotTables("Cities").PivotFields("City").PivotItems.count
row = 2 'This is your starting row for display
For Each pi In ActiveSheet.PivotTables("Cities").PivotFields("City").PivotItems
If pi.Visible Then
count = count + 1
End If
If count = available Then
MsgBox ("All Pivot Items Are Selected")
End If
If count <> available Then
row = row + 1
Range("'Sheet4'!G" & row) = pi.Name
End If
Next pi
End Sub
所以每當我有城市一個城市的過濾器,或組,宏它們粘貼到電子表格的範圍。最終,我想將它們存儲爲變量,但現在我只是將它們粘貼到代碼中。您還可以看到,當可見項目的數量等於該字段中的數據透視項目總數時,我將返回一個消息框。最終,該消息框將消失,並被代碼告知它開始查看下一個可見字段中的透視項目。
我意識到這可能是不必要的,因爲將所有可見項目作爲過濾器應用於源數據字段將導致顯示所有項目,從而實現相同的目的。不過,我更加好奇我在這一點上做錯了什麼。代碼將所有項目粘貼到該範圍,而不管是否有過濾器。但是,僅當沒有應用過濾器時纔會返回消息框,因此它看起來工作正常。
任何輸入/反饋將不勝感激。謝謝。