次の構造を書いているマクロにループがあります。
この本には2つのワークシートがあります。生データ(したがって、endpointData変数)およびG / L(総勘定元帳)シート(したがって、endpointGL変数)
for
この関数には3つのループがあります。
(1)最初のループは、生データファイルの各レコードを繰り返し処理します。(2)2番目のループは(正規表現検索)
からの検証済みの一致を繰り返し、 (3)3番目のループはG / Lを通過して対応する一致を見つけ、(:を使用して)そのデータを適切な場所に配置します。REGEXP
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
今、あなたは私が自分自身にいくつかのコメントを持っていることに気付くでしょう。3番目のループでG/Lに一致するものが見つからない場合、コードは現在、ユーザーに通知するために割り込みます。ただし、そのメッセージボックスMsgBox("there might be a problem")
は3番目のループとともにループされます。Excelで両方のループを終了し、最初のforループを生データの次の使用可能なレコードに移動するにはどうすればよいですか?
ちなみに、私はそれを終了しようとしましたExit For
が、それは正確には機能していないようです。