【发布时间】:2014-05-25 01:52:17
【问题描述】:
我正在尝试编写一个宏来在 B 列中的值更改时更改行的颜色。 A 列将是我使用 1 和 0 的控制列,即只要 B 列保持不变,A 列就会保持 1;每当 B 发生变化时,A 就会翻转为 0,以此类推。
当 B 列中的值发生变化时,我可以让它正确地为行着色,但是当我过滤数据时会出现问题。例如:假设我将 B2-B4 设置为“test1”,B5-B7 设置为“test2”,B8-B10 设置为“test3”,然后我过滤列 B 以不包含“test2”。最初,在列值发生变化的情况下,行的颜色会有所不同,但 B2-B4 和 B8-B10 行设置为相同的颜色,现在它们相互接触,因为“test2”行被隐藏了。
这是我用来为行着色的代码,但它不适用于过滤:
Sub ColorRows()
Dim This As Long
Dim Previous As Long
Dim LastRow As Long
Dim Color As Integer
Dim R As Long
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
RwColor = Array(15,0)
Color = 0
For R = 2 To LastRow
This = Cells(R, 1).Value
Previous = Cells(R - 1, 1).Value
If This <> Previous Then Color = 1 - Color
Range("A" & R & ":M" & R).Select
Selection.Interior.ColorIndex = RwColor(Color)
Next R
End Sub
如何修复它,以便即使在过滤后,当列值发生变化时,行也能正确着色?
【问题讨论】:
-
您好,欢迎来到堆栈溢出!您可以发布您尝试过的代码吗?这对我们来说更容易查明问题。