我有这个从天气API获取天气信息的子。它适用于Windows 7计算机,但不适用于Windows 10.我收到“用户定义的未定义类型”错误,并突出显示Dim Req As New XMLHTTP
行。我试图将DOMDocument更改为DOMDocument60,并尝试确保检查MicrosoftXML V6.0。
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
有什么想法吗?
答案 0 :(得分:2)
在Tools,References中正确引用了Microsoft XML v6.0库,相应的调用是
Dim req As New MSXML2.XMLHTTP60
答案 1 :(得分:2)
我从“工具,参考”中的XML 6.0更改为XML 3.0,现在可以在Windows 7和Windows 10上使用...