我没有提出这个问题很多次,我已经仔细阅读了所有这些问题,并且在我的代码中遇到过这个问题并且能够解决它。
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中退出吗?
答案 0 :(得分:2)
在End If
之前错过Next
。注意!!!
正确格式化代码应该避免这种错误。
答案 1 :(得分:0)
End If
丢失
您可以使用Smart Indenter添加,这将使代码更具可读性,并修复类似这样的语法问题。 Download 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
答案 2 :(得分: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