0
我試圖設置幾個簡單的按鈕來過濾工作簿中多個工作表上的多個樞軸。這裏沒什麼特別的!這些樞紐不共享一個共同的資源,所以切片機不適合我。但都分享我想要過濾的通用字段名稱。 (F8)但是如果我嘗試直接運行它(F5),則會出現「代碼執行已被中斷」的錯誤,調試器會突出顯示第一個下一個。如果我註釋掉修改過濾器的那一行,那麼無論我以哪種方式執行,函數都可以正常運行。請幫助?Excel VBA樞軸功能在穿越時起作用,但在運行時不起作用
Sub troubleshoot()
Dim wks As Worksheet, strName As String, pvt As PivotTable, strPvtName As String
For Each wks In Worksheets
strName = wks.Name
For Each pvt In wks.PivotTables
strPvtName = pvt.Name
Debug.Print strName + "/" + strPvtName
Sheets(strName).PivotTables(strPvtName).PivotFields("OrderSubType").ClearAllFilters
Next
Next
Set wks = Nothing
Set pvt = Nothing
End Sub
有沒有試過用'FOR i'&'FOR j'而不是2'FOR EACH'?有時,當您修改引用的對象或內容時,FOR EACH停止工作 –
順便說一句,此行'Sheets(strName).PivotTables(strPvtName).PivotFields(「OrderSubType」)。ClearAllFilters'可以被'pvt替換。 PivotFields(「OrderSubType」)。ClearAllFilters'因爲您已經有了對數據透視表對象的引用 –
縮短行的好處。我在某個時候曾經這樣做過,但在嘗試排除故障時不斷改變這些問題。 回覆:您的其他建議使用i&j,我需要做一些類似於 的'For i = 1 To ThisWorkbook.Worksheets.Count' for the first loop,right?但是我還沒有能夠想出正確的方法來獲得給定電子表格中的數據透視表的類似計數以用於第二個循環中的j?我知道VBA足夠讓自己陷入困境...... –