vba - 我有一个宏来刷新工作簿中的所有数据透视表,我需要添加代码来删除(空白)

标签 vba excel pivot

我有一本工作簿,其中包含多个数据透视表。我发现一些代码可以立即刷新所有数据透视表(分配给按钮)。但为了使其余的计算正常进行,我目前必须转到每个表并从“行标签”过滤器中取消选择(空白)。

我尝试了很多选项来添加代码,这些代码也可以过滤掉空格,但似乎无法获得正确的语法。

这是我目前用来刷新所有数据透视表的内容;我还需要添加什么来过滤空白?

Sub RefreshAllPivotTables()
    Dim PT As PivotTable
    Dim WS As Worksheet

    For Each WS In ThisWorkbook.Worksheets
        For Each PT In WS.PivotTables
            PT.RefreshTable
        Next PT
    Next WS
End Sub

最佳答案

试试这个。基本上只是添加了每个数据透视字段的循环

Sub RefreshAllPivotTables()

Dim PT As PivotTable
Dim WS As Worksheet
Dim PF As PivotField

    For Each WS In ThisWorkbook.Worksheets
        For Each PT In WS.PivotTables
            PT.RefreshTable
            For Each PF In PT.PivotFields
                On Error Resume Next
                PF.PivotItems("(blank)").Visible = False
            Next PF
        Next PT
    Next WS
End Sub

关于vba - 我有一个宏来刷新工作簿中的所有数据透视表,我需要添加代码来删除(空白),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49418194/

相关文章:

VBA 选择数据透视表

vba - 计算函数在 vba 中是否正常工作

excel - 在 VBA 中编译时有条件地设置 Const

vba - 从多单元格区域获取格式化值

SQL 数据透视 : One To Many

Android - ObjectAnimator 设置枢轴值

excel - 将 Excel 列中的多个单元格复制到剪贴板

javascript - 从网页编辑服务器上的文件

excel - VBA InStr Excel与Access

excel - 对包含合并单元格的 Excel 表进行排序