Quantcast
Channel: Active questions tagged excel - Stack Overflow
Viewing all articles
Browse latest Browse all 88030

Web scraping data using Excel VBA division error [duplicate]

$
0
0

This question already has an answer here:

I want to have a record of parcels having tracking numbers in excel column A and details of the available field on other columns so that whenever I press the button to run module it updates me about the parcel details fetching from the website. The website I am targeting is "http://trackandtrace.courierpost.co.nz/Search/". I have made the code to embed tracking number after that link and to fetch other fields but the code is not fetching current status description & I want a status to be colored with same color as in the website Here is my code:

Sub update_from_web()
Application.ScreenUpdating = False

Set sh = ActiveSheet

frm_loading.Show
lRow = sh.Range("A"& Rows.Count).End(xlUp).Row

loadUnit = frm_loading.lbl_load.Width / (lRow - 1)
frm_loading.lbl_load.Width = 0

sh.Range("B2:C"& lRow).ClearContents

For i = 2 To ActiveSheet.Range("A"& Rows.Count).End(xlUp).Row

    GetUrl = "http://trackandtrace.courierpost.co.nz/Search/"& Replace(sh.Range("A"& i), "'", "")

    Dim oHtml As HTMLDocument
    Dim oElement As Object

    Set oHtml = New HTMLDocument

    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", GetUrl, False
        .send
        oHtml.body.innerHTML = .responseText
    End With

    Set statusElem = oHtml.getElementsByClassName("status")(1).getElementsByTagName("span")
    statusVal = statusElem(0).innerText
    statusDate = statusElem(1).innerText

    sh.Range("B"& i) = statusVal
    sh.Range("C"& i) = statusDate

    Set statusElem = oHtml.getElementsByClassName("current-status")(1).getElementsByTagName("div")
    statusVal = statusElem(0).innerText
    sh.Range("D"& i) = statusVal

    frm_loading.lbl_load.Width = frm_loading.lbl_load.Width + loadUnit
    frm_loading.Repaint

Next i

End

Application.ScreenUpdating = True
End Sub

Here are sample details which I am trying to fetch enter image description here

It gives error on this line

Set statusElem = oHtml.getElementsByClassName("current-status")(1).getElementsByTagName("div")


Viewing all articles
Browse latest Browse all 88030

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>