程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了VBA 嵌套 Do While 循环串联运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决VBA 嵌套 Do While 循环串联运行?

开发过程中遇到VBA 嵌套 Do While 循环串联运行的问题如何解决?下面主要结合日常开发的经验,给出你关于VBA 嵌套 Do While 循环串联运行的解决方法建议,希望对你解决VBA 嵌套 Do While 循环串联运行有所启发或帮助;

我有一个非常简单的问题。 我试图在 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

解决方法

您需要在 @H_543_13@m 循环内重置 i 变量,否则它只会在第一次运行 @H_543_13@m 循环,因为在您的代码中,一次 @H_543_13@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

此外,不要在 @H_543_13@msgBox 中使用括号,除非您希望它返回一个值。

,

在进入循环块之前,两个循环的下界和上界是已知的。

在这种情况下使用的正确循环结构应该是 git checkout my-branch :

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...LoopDo...WhileDo While...Loop 等),否则取决于循环体执行过程中满足的条件。

这样你就不需要操作/增加/重置任何循环计数器变量。

大佬总结

以上是大佬教程为你收集整理的VBA 嵌套 Do While 循环串联运行全部内容,希望文章能够帮你解决VBA 嵌套 Do While 循环串联运行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:嵌套