我在 Excel 工作表中有一个数据透视表,其中包含对我的数据库进行的查询的结果。我想根据其他所有数据集自动格式化信息。
该信息包含按员工 ID 号排序的每位员工 4 周(1 个月)的记录。我想编写一个模块,以便它以不同的颜色突出显示所有其他记录(员工数据集)。这甚至可能吗?谢谢您的帮助!
我在 Excel 工作表中有一个数据透视表,其中包含对我的数据库进行的查询的结果。我想根据其他所有数据集自动格式化信息。
该信息包含按员工 ID 号排序的每位员工 4 周(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
使用辅助列(如果我计算示例中的列,则为 K)
插入K2:
=IF(ISBlank(C2),K1,MOD(K1+1,2))
然后使用条件格式突出显示该行:
注意公式在 2 之前没有$ 符号(即 $K2,不是 $K$2)
这可能对您有用:
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
每当单元格值与其下方的值不同时,它会交替行颜色。现在它被设置为灰色,但如果你愿意,你可以把它改成更亮的颜色。你可以输入你自己的逻辑来得到你想要的任何颜色。祝你好运。