Louis
Louis

Reputation: 307

Paste table from web into range of cells

I am trying to get a table from a website into my excel sheet. Since the website has a log in and I need to click a few buttons to get to the table, I am using VBA.

The code I have so far is just a test, it is not the actual website that I am trying to log into. So far, the code is able to launch the website and get the inner text from the table, but it only pastes it into a single cell. How can I paste the table by keeping the same formatting?

Sub test()
    Set IE = CreateObject("InternetExplorer.application")
    IE.Visible = True
    IE.navigate ("https://www.w3schools.com/html/html_tables.asp")
    Do
            If IE.readyState = 4 Then
                IE.Visible = True
                Exit Do
        Else
            DoEvents
        End If
    Loop
    
    'get data
    Dim tbl As HTMLTable
    Set tbl = IE.document.getElementById("customers")
    
    Cells(1, 1) = tbl.innerText    
End Sub

Upvotes: 0

Views: 31

Answers (1)

Kin Siang
Kin Siang

Reputation: 2699

You may perform webscraping using the following code enhancement, it work perfectly :

Sub test()
Dim IE As Object
    Set IE = CreateObject("InternetExplorer.application")
    IE.Visible = True
    IE.navigate ("https://www.w3schools.com/html/html_tables.asp")
    Do
            If IE.readyState = 4 Then
                IE.Visible = True
                Exit Do
        Else
            DoEvents
        End If
    Loop
    
    'get data
    Dim tbl As HTMLTable
    Dim class1 As IHTMLElement, rowText As IHTMLElement, item As IHTMLElement
    Dim rowNum As Long, colNum As Long
    
    Set class1 = IE.document.getElementById("customers").children(0)
    rowNum = 0
    
    For Each rowText In class1.children
        rowNum = rowNum + 1
        colNum = 0
        For Each item In rowText.children
            colNum = colNum + 1
            Sheet1.Cells(rowNum, colNum).Value = item.innerText
        Next
    Next

End Sub

enter image description here

Upvotes: 1

Related Questions