在excel中退出嵌套循环

我有一个循环macros我正在写下面的结构:

本书中有两个工作表。 原始数据(因此是endpointDatavariables)和G / L(总帐)表(因此是端点GLvariables)

这个函数中有三个for循环:

(1)第一个循环遍历原始数据文件中的每个logging。
(2)第二个循环遍历REGEXP (正则expression式search)和
(3)第三个循环遍历G / L并find相应的匹配,并将(使用: 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 

现在你会注意到我对自己有一些评论。 如果第三个循环在G / L中找不到匹配,则代码当前中断以通知用户。 但是消息框MsgBox("there might be a problem")与第三个循环一起循环。 我如何获得excel退出BOTH循环,并将FIRST for循环带到原始数据中的下一个availabelogging中?

顺便说一下,我已经尝试退出它与Exit For但似乎并不完全正常工作。

我看到两个选项。

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

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

在这种情况下,goto可能不会太糟糕,因为你没有跳到代码的完全不同的部分。 把它记下来吧