I have this sub that gets weather information from a weather API. It works on Windows 7 computers but not Windows 10. I get a "User-defined type not defined" error and it highlights the Dim Req As New XMLHTTP
line. I have tried to change the DOMDocument to DOMDocument60 and Ive tried to make sure the MicrosoftXML V6.0 is checked.
Public Sub GetWeather(APIurl As String, sted As String)
Dim i As Integer
Dim ws As Worksheet: Set ws = ActiveSheet
Dim city As String
Dim omraade As String
Dim Req As New XMLHTTP
Dim Weather As IXMLDOMNode
Dim wShape As Shape
Dim thisCell As Range
Dim Resp As New DOMDocument60
i = 0
omraade = ""
omraade = sted
Select Case omraade
Case "Area1"
i = 4
Case "Area2"
i = 6
Case "Area3"
i = 8
Case Else
Exit Sub
End Select
Req.Open "GET", "" & APIurl & "", False
Req.Send
Resp.LoadXML Req.responseText
For Each Weather In Resp.getElementsByTagName("current_condition")
Set thisCell = ws.Range(Cells(2, i), Cells(2, i))
Set wShape = ws.Shapes.AddShape(msoShapeRectangle, thisCell.Left, thisCell.Top, thisCell.Width, thisCell.Height)
wShape.Fill.UserPicture Weather.ChildNodes(4).Text 'img
Cells(3, i).Value = "" & Weather.ChildNodes(7).Text * 0.28 & " m/s" 'windspeedkmph
Cells(4, i).Value = Weather.ChildNodes(9).Text 'Direction
Cells(5, i).Value = Weather.ChildNodes(1).Text & " C" 'observation time
Next Weather
End Sub
Any ideas?
With the Microsoft XML v6.0 library properly referenced in Tools, References, the appropriate call is,
Dim req As New MSXML2.XMLHTTP60