2017-04-18 1 views
1

Ich habe dieses Sub, das Wetterinformationen von einer Wetter-API bekommt. Es funktioniert auf Computern mit Windows 7, aber nicht mit Windows 10. Ich erhalte den Fehler "Benutzerdefinierter Typ nicht definiert" und hebt die Zeile "Dim Req As New XMLHTTP" hervor. Ich habe versucht, das DOMDocument zu DOMDocument60 zu ändern, und ich habe versucht, sicherzustellen, dass MicrosoftXML V6.0 überprüft wird.Benutzerdefiniert Typ nicht definiert Windows 10

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 

Irgendwelche Ideen?

+2

Blick in den Projektreferenzen für fehlende Teile. –

Antwort

1

Mit der XML v6.0 Bibliothek Microsoft richtig in Werkzeuge verwiesen, Referenzen, ist der gewünschte Anruf,

Dim req As New MSXML2.XMLHTTP60 
+0

Das hat es getan. Vielen Dank! Stört es Sie zu erklären, warum ich das tun muss? :) – Thomas

+1

Der 'Typ' der in der Microsoft XML v6.0-Bibliothek beschriebenen Variablen ist nicht XMLHTTP, sondern MSXML2.XMLHTTP60. In gewisser Weise ist es eine Versionssache. – Jeeped

Verwandte Themen