我正在使用Excel 2010並編寫VBA函數,以便在用戶更改數據透視表時自動格式化各種指標(以便格式化在添加/刪除字段時保留)。我正在循環PivotFields集合來執行此操作。爲了更改數據透視表字段需要在數據透視表中可見的格式,否則會引發錯誤。所以我想我可以檢查PivotField的Orientation屬性,並只處理那些設置爲xlDataField方向的屬性。Excel PivotField方向錯誤?
但是,當我運行該函數時,所有數據字段都顯示xlHidden的方向,即使它們在數據透視表中可見。
我只是在做一個簡單的功能,像這樣
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim pt As PivotField
For Each pt In ActiveSheet.PivotTables("PivotTable1").PivotFields
If VBA.InStr(1, pt.Caption, "COMP", vbTextCompare) And pt.Orientation = xlDataField Then
pt.Function = xlAverage
pt.NumberFormat = "0.00%"
End If
Next pt
End Sub
我甚至使用以下檢查所有透視字段:
Debug.Print pt.Caption & " " & pt.Orientation
任何不在頁,行或列字段顯示爲隱藏。沒有任何內容顯示爲數據字段。我錯過了什麼嗎?無論我將其設置爲數據字段,沒有任何內容被標記爲xlDataField。我應該嘗試另一種方式嗎?我已經嘗試使用PivotFields.Hidden屬性,但遇到嘗試訪問它的錯誤。
這固定它,非常感謝。我沒有意識到數據字段有單獨的集合。 – BTGunner 2013-03-22 19:13:59