【问题标题】:Removing (blanks) from all Pivot Tables in Worksheet从工作表中的所有数据透视表中删除(空白)
【发布时间】:2019-08-14 01:58:05
【问题描述】:

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

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

我找到的最接近的东西在下面 Excel VBA Remove Blanks from 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

【问题讨论】:

  • 您要消除的(空白)是否出现在值或行/列中?
  • @MarkS。是的,没错。
  • @MarkS。太棒了,非常感谢。像魅力一样工作。

标签: excel vba pivot-table


【解决方案1】:

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

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

要通过 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

【讨论】:

  • 你好马克,谢谢。我正在尝试将这些步骤与宏绑定,以便能够加快该步骤。
  • @HBG 我添加了应该可以解决您的问题的 VBA 代码。让我知道它工作正常。
猜你喜欢
  • 2013-08-09
  • 1970-01-01
  • 2018-08-25
  • 2022-09-23
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
  • 2018-09-04
  • 2011-09-07
相关资源
最近更新 更多