excel vba 关于嵌套循环怎么跳出的问题

2024-11-26 01:37:52
推荐回答(5个)
回答1:

第1层循环改用其他方式如何?如do……loop循环,不过是稍微变一下条件。
j=3
do until j>m
For i = 3 To n
……
next
j=j+1
loop
这样如果要跳出,可以用exit for或exit do来决定到底跳出哪层

回答2:

判断条件成立退出循环?
IF 条件 THEN
EXIT FOR
ELSE
你上面IF 之间那些代码。

END IF

或者修改判断条件为相反。
有点看不懂你什么意思。

回答3:

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

回答4:

你的代码中,最内层的IF根据结果在第一次ij循环满足条件后进行了不同的填充颜色,然后直接跳出了i循环,换句话说,对于每个【j】,【i 循环体】的执行只有一次。
不知道这是不是你希望的结果?因为代码本身是正确的,是不是完成了你要的效果,只有你自己知道

回答5:

代码没问题啊,是不是你的数据有问题