VBA:否则没有如果错误

我试图运行下面的代码,但我不断收到没有如果错误在第一个子。 代码应该运行通过一列,打开网页,如果在单元格中有一个url,然后将页面信息保存为文本文件。 如果没有url,那么它只是将该文件中的文本保存为文本文件。 我无法弄清楚如何改变语法来使其工作。

Sub LoopOverB() Dim myRow As Long myRow = 10 While Worksheets("Input_Format_A").Cells(myRow, 2).value <> "" If InStr(1, Worksheets("Input_Format_A").Cells(myRow, 2).value, "http://", vbTextCompare) Then Call url_Test(Worksheets("Input_Format_A").Cells(myRow, 2).value, "C:\mallet\test\" & Worksheets("Input_Format_A").Cells(myRow, 1).value & ".txt") myRow = myRow + 1 Else Open "C:\mallet\test\" & Worksheets("Input_Format_A").Cells(myRow, 1) & ".txt" For Append As #1 Print #1, Worksheets("Input_Format_A").Cells(myRow, 2).value Close #1 myRow = myRow + 1 End If Wend End Sub Sub url_Test(URL As String, Filename As String) Dim FSO As Object Dim ieApp As Object Dim Txt As String Dim TxtFile As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set TxtFile = FSO.OpenTextFile(Filename, 2, True, -1) Set ieApp = CreateObject("InternetExplorer.Application") ieApp.Visible = True ieApp.Navigate URL While ieApp.Busy Or ieApp.ReadyState <> 4 DoEvents Wend Txt = ieApp.Document.body.innerText TxtFile.Write Txt TxtFile.Close ieApp.Quit Set ieApp = Nothing Set FSO = Nothing End Sub 

在第一行If ,你必须去一个新的行Then ,否则你的If将被隐式closures。

 'Good (in this case) If <condition> Then DoSomething myRow = myRow + 1 Else DoSomething Different End if 'NOT good If <condition> Then DoSomething 'the if is now "closed" !!! myRow = myRow + 1 Else DoSomething Different End if