I'm trying to run the following code, but I keep getting the Else without If Error in the first sub. The code is supposed to run through a column, open webpages if there is a url in the cell, then save the page info as a text file. If there is no url, then it just saves the text within that file as a text file. I can't figure out how to change the syntax to get it to work.

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 
2

1 Answer

On the line with the first If, you must go to a new line after Then, otherwise your If will be implicitely closed.

'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 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.