我有个很简单的问题。我试图在Excel中嵌套两个"Do While“循环。下面的测试代码复制了我所遇到的问题。
下面的代码应该生成12个消息框。9对于嵌套循环,因为它被触发了三次,主循环也被触发了三次,主循环还有三个消息框。
我发现这两个循环是串联的,好像它们不是嵌套的,所以我总共得到了6个消息框。
我确信我以前在VBA中使用过嵌套循环,没有问题(尽管现在我可能需要回去检查)。
为什么嵌套循环在一个系列中运行呢?它在你的电脑上表现如何?我是不是遗漏了一个简单的语法错误?
Sub test()
i = 0
m = 0
Do While i < 3
Do While m < 3
MsgBox ("Nested Loop " & m)
m = m + 1
Loop
MsgBox ("Master Loop " & i)
i = i + 1
Loop
End Sub发布于 2021-02-15 14:22:42
在输入循环块之前,已知两个循环的下界和上界。
在这种情况下使用的正确的循环结构是For...Next。
Sub test()
Dim i As Long
Dim m As Long
For i = 0 To 2
For m = 0 To 2
Debug.Print "Inner Loop " & m
Next
Debug.Print "Outer Loop " & i
Next
End Sub使用Do...Loop块(Do...While、Do While...Loop、Do...Until等)当循环开始时迭代次数未知时,或其他情况取决于执行循环体时所满足的条件。
这样,您就不需要操作/增量/重置任何循环计数器变量。
https://stackoverflow.com/questions/66207328
复制相似问题