第1层循环改用其他方式如何?如do……loop循环,不过是稍微变一下条件。
j=3
do until j>m
For i = 3 To n
……
next
j=j+1
loop
这样如果要跳出,可以用exit for或exit do来决定到底跳出哪层
判断条件成立退出循环?
IF 条件 THEN
EXIT FOR
ELSE
你上面IF 之间那些代码。
END IF
或者修改判断条件为相反。
有点看不懂你什么意思。
If (InStr(1, Cells(j, 4), xlsheet.Cells(i, 4), vbTextCompare) > 0 Or InStr(1, Cells(j, 7), xlsheet.Cells(i, 4), vbTextCompare) > 0) And Not Cells(j, 4) = "" And Not xlsheet.Cells(i, 4) = "" Then
Cells(j, "J") = xlsheet.Cells(i, "E")
Cells(j, "K") = xlsheet.Cells(i, "F")
Cells(j, "L") = xlsheet.Cells(i, "G")
Cells(j, "M") = xlsheet.Cells(i, "H")
Cells(j, "N") = xlsheet.Cells(i, "I")
Cells(j, "O") = xlsheet.Cells(i, "J")
Cells(j, "P") = xlsheet.Cells(i, "K")
Cells(j, "Q") = xlsheet.Cells(i, "L")
Cells(j, "R") = xlsheet.Cells(i, "M")
Cells(j, "S") = xlsheet.Cells(i, "N")
If xlsheet.Cells(i, 3) = Cells(j, 5) Then
range("j" & j & ":s" & j).Interior.ColorIndex = 4
Else
range("j" & j & ":s" & j).Interior.ColorIndex = 3
End If
'这里没有判断,只要执行这个就会退出第二个循环.
Exit For
End If
你的代码中,最内层的IF根据结果在第一次ij循环满足条件后进行了不同的填充颜色,然后直接跳出了i循环,换句话说,对于每个【j】,【i 循环体】的执行只有一次。
不知道这是不是你希望的结果?因为代码本身是正确的,是不是完成了你要的效果,只有你自己知道
代码没问题啊,是不是你的数据有问题