寻找一种动态和快速的方法来隐藏所有透视表的值。到目前为止,我有下面的代码,但这只在没有任何新值的情况下才有效(例如:如果帐户"333“被添加到数据中,脚本将中断)。有什么建议吗?
Sub Hide_Accounts()
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Account")
.PivotItems("000").Visible = False
.PivotItems("111").Visible = False
.PivotItems("222").Visible = False
.PivotItems("(blank)").Visible = False
End With
End Sub
发布于 2019-11-09 08:59:25
AFAIK你不能隐藏一个字段中的所有项(这会引发一个错误)。另一种方法是隐藏整个字段。
尝试此代码并阅读注释以根据您的需要进行调整:
Sub Hide_Accounts()
Dim evalPivotTable As PivotTable
Dim evalPivotField As pivotField
Dim targetSheetName As String
Dim targetPivotTableName As String
Dim targetPivotFieldName As String
' Define the names of sheet and pivot table
targetSheetName = "Sheet1"
targetPivotTableName = "PivotTable2"
targetPivotFieldName = "Account"
Set evalPivotTable = ThisWorkbook.Worksheets(targetSheetName).PivotTables(targetPivotTableName)
' Loop through all pivot table fields
For Each evalPivotField In evalPivotTable.PivotFields
If evalPivotField.Name = targetPivotFieldName And evalPivotField.Orientation <> xlHidden Then
' Hide the field
evalPivotField.Orientation = xlHidden
' You can exit the loop because you have hidden the entire field
Exit For
End If
Next evalPivotField
End Sub
如果答案对你帮助他人有帮助,记得在答案上打上记号。
https://stackoverflow.com/questions/58775352
复制相似问题