loops - 退出 Excel 中的嵌套循环

标签 loops excel vba

我正在编写以下结构的宏中有一个循环:

本书中有两个工作表。原始数据(因此是端点数据变量)和总帐(总账)表(因此是端点GL变量)

此函数中有三个 for 循环:

(1) 第一个循环迭代原始数据文件中的每条记录。
(2) 第二个循环迭代来自 REGEXP(正则表达式搜索)的已验证匹配项,
(3) 第三个循环遍历总帐并找到相应的匹配并将数据放入(使用:PUT_DATA_RANGE)到适当的位置。

这是我的意思:

伪代码:

For i = 2 To endpointData

    If SOME_TEST = True Then
        Set MATCHES = REGEXP.EXECUTE()
        For Each myMatch In MATCHES
            For j = 1 To endpointGL
                If myMatch.value = SOME_CONDITION Then
                    PUT_DATA_RANGE
                    Exit For
                ElseIf myMatch.value <> SOME_CONDITION Then
                    MsgBox ("there might be a problem")
                    ' EXIT BOTH LOOPS HERE

                    ' write handler code
            Next
            End If
        Next
    End If
Next i

现在你会注意到我对自己有一些评论。如果第三个循环在总帐中找不到匹配项,则代码当前会中断以通知用户。但是该消息框 MsgBox("there might be a Problem") 与第三个循环一起循环。我如何让Excel退出两个循环并将第一个for循环带到原始数据中的下一个可用记录?

顺便说一句,我尝试使用 Exit For 退出它,但这似乎并不完全有效。

最佳答案

我看到两个选项。

1)使用一系列 bool 值来检查外循环是否应该继续

2)使用goto语句退出内循环直接回到主程序

在这种情况下,goto 可能不会那么糟糕,因为您没有跳转到代码的完全不同的部分。只要好好记录一下...

关于loops - 退出 Excel 中的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536730/

相关文章:

python - 最好将项目添加到集合中,还是将最终列表转换为集合?

vba - 以编程方式保存 Excel 加载项

string - Excel VBA - 在调用的子中使用现有字符串

Excel ActiveX 控件损坏, "Can' t 退出设计模式”, "Object library invalid"

c# - 使用 While 循环在 Xamarin Forms 中填充自定义 ListView

循环内的 JavaScript 闭包——简单实用的例子

loops - 为什么 Haskell 序列函数不能惰性或递归单子(monad)函数不能惰性

java - 使用 Apache Poi 读取内部存储中的 excel xlsx 文件

excel - 如果日期早于 6 个月且值为 X,则输出此

Excel VBA 复制整个工作表并粘贴为值