热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

VBA嵌套DoWhile循环串联运行

我有一个非常简单的问题。我试图在ExcelVBA中嵌套两个“DoWhile”循环。下面的测试代码重现了我遇到的问题。下面的代码应该产生12个消息框。9用于嵌套循

我有一个非常简单的问题。我试图在 Excel VBA 中嵌套两个“Do While”循环。下面的测试代码重现了我遇到的问题。

下面的代码应该产生 12 个消息框。9 用于嵌套循环,因为它被触发了 3 次,主循环也被触发了 3 次,另外还有 3 个用于主循环的消息框。

我发现这两个循环串联运行,就好像它们没有嵌套一样,所以我总共收到 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

回答


您将需要mi循环内重置变量,否则它只会m在第一次运行循环,因为在您的代码中,一旦m到达3,它将始终为3

Sub test()
i = 0
Do While i <3
m = 0
Do While m <3
MsgBox "Nested Loop " & m
m = m + 1
Loop
MsgBox "Master Loop " & i
i = i + 1
Loop
End Sub

此外,MsgBox除非您希望它返回一个值,否则不要使用括号 with 。






推荐阅读
author-avatar
手机用户2602917233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有