I have the following code and whenever I run it it highlights the 1st line of the code and says "User-defined type not defined". What is wrong with it as I can't see any issue.
To clarify, the line of code " Dim xmlLoad As New MSXML2.DOMDocument" is highlighted and the error message appears when the macro is run.
To clarify, the line of code " Dim xmlLoad As New MSXML2.DOMDocument" is highlighted and the error message appears when the macro is run.
Code:
Sub XML_test()
Dim xmlLoad As New MSXML2.DOMDocument
Dim allevents As IXMLDOMNode
Dim eventslen As Integer
Dim events As IXMLDOMNode
Dim XMLHttpRequest As MSXML2.XMLHTTP
Dim i As Integer
Dim URL As String
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
On Error Resume Next
With ThisWorkbook.Worksheets("HSSS")
URL = "URL GOES HERE"
Set XMLHttpRequest = New MSXML2.XMLHTTP
XMLHttpRequest.Open "GET", URL, False
XMLHttpRequest.send
Set xmlLoad = New MSXML2.DOMDocument
Do Until xmlLoad.readyState = 4
Loop
xmlLoad.LoadXML (XMLHttpRequest.responseText)
eventslen = xmlLoad.DocumentElement.ChildNodes.Length
Set allevents = xmlLoad.DocumentElement.ChildNodes(eventslen - 1)
eventslen = allevents.ChildNodes.Length
i = 0
For i = 0 To (eventslen - 1) Step 1
Set events = allevents.ChildNodes(i)
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 1).Value = events.FirstChild.Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 2).Value = events.ChildNodes(5).ChildNodes(0).FirstChild.Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 2).Value = events.ChildNodes(5).ChildNodes(0).ChildNodes(0).Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 3).Value = events.ChildNodes(5).ChildNodes(1).FirstChild.Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 7).Value = events.LastChild.FirstChild.SelectSingleNode("moneyline").ChildNodes(0).Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 5).Value = events.LastChild.FirstChild.SelectSingleNode("moneyline").ChildNodes(1).Text
ThisWorkbook.Sheets("HSSS").Cells(i + 2, 6).Value = events.LastChild.FirstChild.SelectSingleNode("moneyline").ChildNodes(2).Text
Next i
Set xmlLoad = Nothing
Set allevents = Nothing
End Sub