首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于隐藏所有数据透视表值的动态VBA宏

用于隐藏所有数据透视表值的动态VBA宏
EN

Stack Overflow用户
提问于 2019-11-09 08:34:57
回答 1查看 247关注 0票数 0

寻找一种动态和快速的方法来隐藏所有透视表的值。到目前为止,我有下面的代码,但这只在没有任何新值的情况下才有效(例如:如果帐户"333“被添加到数据中,脚本将中断)。有什么建议吗?

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2019-11-09 08:59:25

AFAIK你不能隐藏一个字段中的所有项(这会引发一个错误)。另一种方法是隐藏整个字段。

尝试此代码并阅读注释以根据您的需要进行调整:

代码语言:javascript
运行
复制
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

如果答案对你帮助他人有帮助,记得在答案上打上记号。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58775352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档