用户定义的类型未定义窗口10

时间:2017-04-18 14:15:56

标签: xml excel vba domdocument

我有这个从天气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

有什么想法吗?

2 个答案:

答案 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上使用...