【发布时间】:2017-04-04 21:59:52
【问题描述】:
我试图编写一个宏来格式化许多包含数据透视表的工作表。我被困在这个问题上。
我的工作表包含许多堆叠的数据透视表。我需要 VBA 代码 sn-p 来隐藏,比如说,在第一个表之后 1000 行(或者如果可能的话,除了最上面的表之外的所有表)。顶部表格的大小会随着一天的变化而变化,因此不可能只隐藏一个设定的范围。
谢谢
【问题讨论】:
我试图编写一个宏来格式化许多包含数据透视表的工作表。我被困在这个问题上。
我的工作表包含许多堆叠的数据透视表。我需要 VBA 代码 sn-p 来隐藏,比如说,在第一个表之后 1000 行(或者如果可能的话,除了最上面的表之外的所有表)。顶部表格的大小会随着一天的变化而变化,因此不可能只隐藏一个设定的范围。
谢谢
【问题讨论】:
要隐藏除一个之外的所有数据透视表,您可以尝试这样的操作... 在下面的代码中,更改您不想隐藏的数据透视表的名称。
Sub HideAllPivotTablesButOne()
Dim ws As Worksheet
Dim pt As PivotTable
Application.ScreenUpdating = False
Set ws = ActiveSheet
lr = ws.UsedRange.Rows.Count
For Each pt In ws.PivotTables
If pt.Name <> "PivotTable1" Then 'Name of the Pivot Table which you don't want to hide
pt.TableRange2.EntireRow.Hidden = True
End If
Next pt
Application.ScreenUpdating = True
End Sub
如果你想再次显示所有的数据透视表,你可以试试下面的代码...
Sub ShowAllPivotTables()
Dim ws As Worksheet
Dim pt As PivotTable
Application.ScreenUpdating = False
Set ws = ActiveSheet
lr = ws.UsedRange.Rows.Count
For Each pt In ws.PivotTables
pt.TableRange2.EntireRow.Hidden = False
Next pt
Application.ScreenUpdating = True
End Sub
【讨论】: