I am trying to take a list of names and zip codes from Excel, input them sequentially one name and zip code at a time into the search fields at www.yellowpages.com and return street address results to Excel in the same sequence as the original names and zip codes. There is no error message returned, it just stops without finishing. I'm not sure where it stops but it does open internet explorer, enter search terms and click search because I can see that when .visible = True. My best guess is between the "".
Here is my code (adapted from DontFretBrett and Dinesh Kumar Takyar):
Sub Address_Scrape()
Dim eRow As Long
Dim ele As Object
Dim wb As Workbook
Dim srch As Worksheet
Dim trgt As Worksheet
Set wb = ThisWorkbook
Set srch = wb.Sheets("Master with addresses")
Set trgt = wb.Sheets("Sheet1")
Dim url As String
Dim zc As String
Dim Name As String
Name = srch.Range("B2")
zc = srch.Range("F2")
url = "URL;http://www.yellowpages.com/"
url = url & "/" & zc & "/" & Name
RowCount = 1
trgt.Range("A" & RowCount) = "Name"
trgt.Range("B" & RowCount) = "Address"
trgt.Range("C" & RowCount) = "City"
trgt.Range("D" & RowCount) = "State"
trgt.Range("E" & RowCount) = "Zip"
eRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.navigate "http://www.yellowpages.com/"
.Visible = True
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
Set who = .document.getElementsByName("search_terms")
who.Item(0).Value = Name
Set where = .document.getElementsByName("geo_location_terms")
where.Item(0).Value = zc
.document.forms(0).submit
Do While .Busy Or _
.readyState <> 4
DoEvents
Loop
"Results = .document.getElementsByTagName("p")(0).innerText"
For Each ele In .document.all
Select Case ele.tagName
Case Results
RowCount = RowCount + 1
Case "Name"
trgt.Range("A" & RowCount) = ele.getElementByclass("business-name").innerText
Case "Address"
trgt.Range("B" & RowCount) = ele.getElementByclass("street-address").innerText
Case "City"
trgt.Range("C" & RowCount) = Trim(ele.getElementByclass("locality").innerText)
Case "State"
trgt.Range("D" & RowCount) = ele.getElementByitemprop("addressRegion").innerText
Case "Zip"
trgt.Range("E" & RowCount) = ele.getElementByitemprop("postalCode").innerText
End Select
Next ele
Set objIE = Nothing
End With
End Sub