2017-07-18 113 views
0

我有一個數據透視表和一個切片器,我需要一個代碼來更新每列的寬度以適合每次更新切片器(更新數據透視)的值。我知道如果我使用Pivot table>選項,我不能選擇一個表示「自動更新列寬」的框,但它不起作用。所以相反,我正在嘗試編寫一個自動執行此操作的代碼。針對數據透視表刷新的VBA列寬度更新

我嘗試這樣做:

Private Sub Workbook_SheetActivate(ByVal Sh As Object) 
    Dim pt As PivotTable 
    For Each pt In ActiveSheet.PivotTables 
     columns.autofit 
    Next pt 
End Sub 

東西不工作,雖然我不知道它是什麼。任何人都可以看到代碼的問題?謝謝!

+0

你能拿出的'每個pt'一部分,只是說'columns.autofit'? – jcarroll

+0

@KateLO你看過我的答案和代碼嗎?任何反饋 ? –

回答

2

爲了修改PivotTable中的列寬,您需要解決pt.TableRange1.Columns屬性。

嘗試下面的代碼:

Dim pt As PivotTable 

For Each pt In ActiveSheet.PivotTables 
    pt.TableRange1.Columns.AutoFit 
Next pt