所以我制作了一个Excel宏,当我尝试运行它时,它会一直崩溃。这是:
result = "fail"
j = 4
Do While result = "fail" Or Cells(2, j) <> " "
If Cells(2, j).Value >= 15 Then
result = "pass"
Else
j = j + 1
End If
Loop
答案 0 :(得分:1)
如果Do While
或Do While result = "fail" Or Cells(2, j) <> " "
,则result = "fail"
循环Cells(2, j) <> " "
将会运行。
我认为你打算在到达空单元格时退出循环,或者得到result = "pass"
。因此,您需要将Or
更改为And
:
Do While result = "fail" And Cells(2, j) <> " "
如果您想在单元格中只有空格的情况下退出,请同时添加Trim
。
Do While result = "fail" And Trim(Cells(2, j)) <> ""
答案 1 :(得分:0)
更改或更改为。 循环需要在某个地方停止,目前它正在进入无限循环。 请尝试下面的代码,让我知道这是你想要的,还是我理解你的要求不正确。
Sub tester()
result = "fail"
j = 4
Do While result = "fail" And Cells(2, j) <> ""
If Cells(2, j).Value >= 15 Then
result = "pass"
Else
j = j + 1
End If
Loop
End Sub