VBA嵌套循环,直到循环

我需要一个循环结构来检查一个单元格的范围,然后如果单元格和范围内的单元格相等,那么字体会变成红色。 我的问题是,我做直到循环不会进入。 这就是我现在所拥有的。 `

Dim finalrow As Long finalrow = Worksheets("Redundancy").Cells(Worksheets("Redundancy").Rows.Count, "D").End(xlUp).Row Dim z As Long Dim w As Long Dim r As Long w = 2 r = 0 For z = 2 To finalrow If Range("L" & z) = Range("L" & z + 1) & Range("J" & z) <> Range("J" & z + 1) Then Do Until Range("L" & z) = Range("L" & z + 1) & Range("J" & z) <> Range("J" & z + 1) If Cells(w, 4) = Cells(z + 1, 4 + r) Then Cells(w, 1).Font.ColorIndex = 3 Cells(z + 1, 1).Font.ColorIndex = 3 If r = 4 Then w = w + 1 End If End If r = r + 1 Loop End If Next z 

我把它改成了这个,但是当它正要进入do while循环的时候它会一起退出循环。

`

 For z = 2 To finalrow Do While (Range("L" & z) = Range("L" & z + 1) And Range("J" & z) <> Range("J" & z + 1)) If Cells(w, 4) = Cells(z + 1, 4 + r) Then Cells(w, 1).Font.ColorIndex = 3 Cells(z + 1, 1).Font.ColorIndex = 3 If r = 4 Then w = w + 1 End If End If r = r + 1 Loop Next z 

`

如果你这样做,

Range("L" & z) = Range("L" & z + 1) and Range("J" & z) <> Range("J" & z + 1)

你正在比较Range对象。 你想要做的是比较这些范围对象中的值。 所以用这个来代替

Range("L" & z).value = Range("L" & z + 1).value and Range("J" & z).value <> Range("J" & z + 1).value

但是,当您使用cells(row,column)您没有这个问题。

我很好奇,是不是可以使用conditional formatting呢?

使用'和'运算符而不是'&'。