2017-07-18 151 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