首页 > 解决方案 > 从工作表中的所有数据透视表中删除(空白)

问题描述

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

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

我发现的最接近的东西是在 Excel VBA 下从 Pivotable Group 中删除空白

但在此解决方案中,识别出单个列,我需要将其应用于所有数据透视表。

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

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

标签: excelvbapivot-table

解决方案


在实际字段(行/列)而不是值中,如果您想(blank)显示为空单元格,则秘密是条件格式。

  1. 突出显示要格式化的数据透视表
  2. Home功能区的选项卡下选择Conditional Formatting
  3. 选择New Rule
  4. 选择Format only cells that contain
  5. 更改betweenequal to
  6. 在输入框中(blank)准确输入。
  7. 更改填充格式以适应数据透视表的背景(即:白色背景,填充白色)。当单词(空白)出现时,这将给出一个空单元格的外观。

要通过 VBA 执行此操作,您可以使用以下代码。它的完成方式可能并不完美,但它应该可以正常工作。它会在everysheet 中找到每个数据透视表,并查找(blank)并有条件地将其格式化为白色(背景和字体),如果您需要其他颜色,请更改该颜色。

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

推荐阅读