Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从工作表中的所有透视表中删除(空白)_Excel_Vba_Pivot Table - Fatal编程技术网

Excel 从工作表中的所有透视表中删除(空白)

Excel 从工作表中的所有透视表中删除(空白),excel,vba,pivot-table,Excel,Vba,Pivot Table,我在工作表中有5个以上的透视表,其中一些单元格有一个空的源单元格,并显示为典型的(空白)。我希望透视表显示一个空单元格,而不是单词(空白) 我已经回顾了其他解决方案,但他们要求删除空行或过滤表等 我找到的最接近的东西在下面 但在这个解决方案中,只标识一个列,我需要将其应用于所有透视表 尝试只录制宏步骤,但在尝试重新运行宏时,ExecutExcel4Macro行出现运行时错误1004 Sub HB_Erase_Blank() ' ' HB_Erase_Blank Macro Range(

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

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

我找到的最接近的东西在下面

但在这个解决方案中,只标识一个列,我需要将其应用于所有透视表

尝试只录制宏步骤,但在尝试重新运行宏时,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
在实际字段(行/列)中,与值相反,如果希望将
(空白)
显示为空单元格,则秘密在于条件格式

  • 突出显示要格式化的数据透视表
  • 在功能区的
    Home
    选项卡下,选择
    Conditional Formatting
  • 选择新规则
  • 选择
    仅格式化包含
  • 之间的
    更改为等于
  • 准确地在输入框中键入
    (空白)
  • 更改填充格式以适合透视表的背景(即:白色背景,用白色填充)。当单词(空白)出现时,这将显示空单元格的外观
  • 要通过VBA执行此操作,可以使用以下代码。它的工作方式可能并不完美,但它应该工作得很好。它在everysheet中查找每个透视表,并查找
    (空白)
    ,并有条件地将其格式化为白色(背景和字体)。如果需要其他颜色,请更改该颜色

    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
    

    您试图消除的(空白)是否出现在值中或行/列中?@标记。是的,那是正确的。@MarkS。太棒了,谢谢你。很有魅力。你好,马克,谢谢。我正在尝试将这些步骤与宏绑定,以便能够加快该步骤。@HBG我添加了VBA代码,该代码将解决您的问题。让我知道它工作正常。