关于excel:从工作表中的所有数据透视表中删除(空白)

Removing (blanks) from all Pivot Tables in Worksheet

我在工作表中有5个以上的数据透视表,其中某些单元格的源单元格为空,并以典型(空白)显示。 我希望数据透视表显示一个空单元格而不是单词(空白)。

我已经查看了其他解决方案,但他们要求删除空行或过滤表等。

我发现最近的东西在
Excel VBA从枢轴组删除空白

但在此解决方案中,只标识了一个列,因此我需要将此列应用于所有数据透视表。

尝试仅简单记录宏步骤,但是当我尝试重新运行宏时,在ExecutExcel4Macro行上收到运行时错误1004。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub HB_Erase_Blank()
'
' HB_Erase_Blank Macro

   Range("D4").Select
   Range("D4:CA6699").Select

   Selection.NumberFormat =";;;"
   Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
    Formula1:="=""(blank)"""
   Selection.FormatConditions(Selection.FormatConditions.Count).
   SetFirstPriority
   ExecuteExcel4Macro"(2,1,"";;;"")"
   Selection.FormatConditions(1).StopIfTrue = False
End Sub


如果要让(blank)显示为空单元格,则在实际字段(行/列)中与"值"相对应,而秘密在于条件格式。

  • 突出显示要设置格式的数据透视表
  • 在功能区的Home选项卡下,选择Conditional Formatting
  • 选择New Rule
  • 选择Format only cells that contain
  • between更改为equal to
  • 准确地在输入框中输入(blank)
  • 更改填充格式以适合数据透视表的背景(即:白色背景,用白色填充)。 当单词(空白)出现时,这将显示一个空单元格的外观。
  • 要通过VBA执行此操作,可以使用以下代码。 它的完成方式可能并不完美,但是应该可以正常工作。 它会在每张工作表中找到每个数据透视表,并查找(blank)并有条件地将其设置为白色(背景和字体),以更改其他需要的颜色。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub HideBlank()
    Dim Pivot As PivotTable
    Dim sh As Worksheet

    For Each sh In ThisWorkbook.Worksheets
        For Each Pivot In sh.PivotTables
         Pivot.TableRange1.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
            Formula1:="=""(blank)"""
            With Pivot.TableRange1.FormatConditions(1).Font
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = 0
            End With
            With Pivot.TableRange1.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark1
                .TintAndShade = 0
            End With
        Next
    Next

    End Sub