VBA:while循环不能处理多个(或)条件

时间:2013-11-20 16:02:00

标签: vba loops while-loop

Sub Demo()

Dim x As Integer
Dim y As Integer

x = 20
y = 15

While ((x <> 10) Or (y <> 10))
    x = x - 1
    y = y - 1
    Debug.Print x & " : " & y
    Wend

Debug.Print x & " : " & y
End Sub

当x或y等于10时,此循环进入infinte模式,而不是在条件下中断。我尝试使用Do..While..Loop,但即使这样也行不通。我们不能在While语句中使用多个条件。

2 个答案:

答案 0 :(得分:4)

or替换为and

即使x为10,y也不等于10,反之亦然,因此您的条件始终为真,您的循环将永远持续...

答案 1 :(得分:1)

您只需将使用的逻辑从“OR”更改为“AND”。

每当它当前迭代时,它会检查其中任何一个是真的,但是,如果y = 10,而X没有,你将继续循环,因为它评估两者。

使用“AND”,只要满足一个条件,就会断开循环。

相关问题