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

jas*_*ad2 3 excel vba 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
Run Code Online (Sandbox Code Playgroud)

Dud*_*ott 5

尝试这个。基本上只是添加了每个枢轴字段的循环

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
Run Code Online (Sandbox Code Playgroud)