0

私はこの質問を何度も出てきませんでした。私はそれらすべてを読み、以前にコードでこの問題に遭遇し、それを解決することができました。

If count > 1 Then
           For Each Match1 In Regex.Execute(text)
           myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
           If Macth1 = "" Then
           Exit For
           Else
           myOtherSheet.Cells(j, 2).Value = Match1
           j = j + 1
           Next Match1
           End If

コードは次のMatch1行でエラーを出します。これは通常、ループを閉じるのを忘れているときに起こりますが、ここではすべて問題ないようです。プログラムが実行されない場合、INNNERの出口はありますか?

4

3 に答える 3

2

End If前にミスNext。注意を払う!!!

コードを適切にフォーマットすることで、この間違いを避けることができます。

于 2013-07-12T10:22:06.673 に答える
0

End If次のMatch1の前に行方不明

Smart Indenter アドオンを使用すると、コードが読みやすくなり、このような構文の問題が修正されます。 スマート圧子をダウンロード

If count > 1 Then
    For Each Match1 In Regex.Execute(text)
        myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
        If Macth1 = "" Then
            Exit For
        Else
            myOtherSheet.Cells(j, 2).Value = Match1
            j = j + 1
        End If
        Next Match1
    End If
于 2013-07-12T10:23:25.663 に答える
0

@LS_devの回答に、常にインデントを使用するEnd Ifと、すべてが正しくなる可能性が高くなるということを追加しますNext

コードはインデントで次のようになります。

If Count > 1 Then
    For Each Match1 In Regex.Execute(Text)
        myOtherSheet.Cells(j, 1).Value = WkSht.Cells(r, 2)
        If Macth1 = "" Then
            Exit For
        Else
            myOtherSheet.Cells(j, 2).Value = Match1
            j = j + 1
        ' Missing End If
    Next Match1
End If
于 2013-07-12T10:26:25.993 に答える