【问题标题】:Excel PivotTable Conditional FormattingExcel 数据透视表条件格式
【发布时间】:2012-10-18 12:31:42
【问题描述】:

我在 Excel 工作表中有一个数据透视表,其中包含对我的数据库进行的查询结果。我想根据其他所有数据集自动格式化信息。

该信息包含按员工 ID 号排序的每位员工 4 周(1 个月)的记录。我想编写一个模块,以便它以不同的颜色突出显示所有其他记录(员工数据集)。这甚至可能吗?感谢您的帮助!

【问题讨论】:

  • 你好,我认为你不需要 VBA。您可以转到主页 -> 样式 -> 格式为表格 -> 选择一种每隔一行突出显示的格式。当然,这也取决于您的数据透视表如何对数据进行分组。如果你能提供一个截图,那将有很大帮助。
  • 好的,我上传了我想要的屏幕截图(手动完成,有 100,000 条记录,只是没有时间效率)
  • 感谢您花时间制作图片!我建议使用样式的唯一原因是因为您可能希望有一天更改列排列,并且您可以避免使用样式更改任何公式/vba 代码。但是,使用样式有点麻烦。我会看看我是否能想出一些有用的东西。否则,我会推荐一个条件格式公式,如下面的答案。

标签: excel vba module pivot-table


【解决方案1】:

如果您坚持使用 VBA 解决问题,这里就是一个示例。您需要指定起始范围。请不要标记整行会使用更多内存(增加文件大小),所以我宁愿使用示例:range("A2:E2).select ....

Sub FormatEverySecondRow()
         range("A2").EntireRow.Select
         Do While ActiveCell.value <> ""
             Selection.Interior.ColorIndex = 15
             ActiveCell.offset(2, 0).EntireRow.Select
         Loop
End Sub

【讨论】:

  • 您也可以尝试以下方法:Sub FormatEverySecondRow() Dim i As Long Dim bShade As Boolean bShade = True i = 3 Do While Range("A" &amp; i).Value &lt;&gt; "" If Range("C" &amp; i).Value &lt;&gt; "" Then If bShade = True Then bShade = False Else bShade = True End If End If If bShade = True Then Range("B" &amp; i &amp; ":H" &amp; i).Interior.ColorIndex = 15 Else Range("B" &amp; i &amp; ":H" &amp; i).Interior.ColorIndex = 14 End If i = i + 1 Loop End Sub
【解决方案2】:

使用辅助列(如果我计算示例中的列,则为 K)

插入K2:

=IF(ISBlank(C2),K1,MOD(K1+1,2))

然后使用条件格式突出显示该行:

请注意,公式在 2 之前有 $ 符号(即 $K2,而不是 $K$2)

【讨论】:

    【解决方案3】:

    这可能对你有用:

    Sub HighlightDifferentRows()
    
    Dim wksht As Worksheet
    Dim wkb As Workbook
    Dim row As Range
    Dim FloatColor As Long
    
    FloatColor = RGB(100, 100, 100)
    
    Set wbk = ThisWorkbook
    
    Application.ScreenUpdating = False
    
    For Each row In Sheets(1).UsedRange.Rows
        row.Interior.Color = FloatColor
        If row.Cells(1, 4).Value <> row.Cells(2, 4).Value Then
            FloatColor = -FloatColor
        End If
    Next row
    
    Application.ScreenUpdating = True
    
    End Sub
    

    每当单元格值与其下方的值不同时,它会交替行颜色。现在它被设置为灰色,但如果你愿意,你可以把它改成更亮的颜色。你可以输入你自己的逻辑来获得你想要的任何颜色。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多