Function gibt Fehler "#WERT!" zurück
#1
Hallo und einen guten Abend,
ich habe folgende Function erstellt.(Vorlage ist das Video von Kai Weissmann, "Google Maps in Excel einbinden)

Code:
Option Explicit
Const APIKey As String = "MEINEKEY"

'Microsoft XML aktivieren
'Microsoft Scripting Runtime aktivieren

Function DISTANZ(Von As String, Nach As String)

'Variablen dimensionieren
Dim URL As String
Dim httpReq As New MSXML2.XMLHTTP60
Dim Antwort As String
Dim JSON As Dictionary
Dim Meter As Long

'URL dimensionieren
URL = "https://maps.googleapis.com/maps/api/directions/json?origin=" & Von & " & Destination = " & Nach & " & Key = " & APIKey

'Web Request
With httpReq

    'Request öffnen
    .Open "Get", URL, False
    .send

    'Antwort speichern
    Antwort = .responseText
   
End With

'JSON abspeichern
Set JSON = JsonConverter.ParseJson(Antwort)

'Meter auslesen
Meter = JSON("routes")(1)("legs")(1)("distance")("value")

'Rückgabewert definieren
DISTANZ = Meter

End Function


Nach Aufruf der Function DISTANZ wird der Fehler "#WERT!" ausgegeben.
Wo steckt hier mein Fehler??

Vielen Dank im Voraus
Antworten Top
#2
Hallo,

um das sagen zu können, müsste man deine Datei sehen. Du forderst Texte an, offenbar steht in der Datei was anderes.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Willst Du den API-Key mopsen, Klaus-Dieter?
Denn ohne den funktioniert das Makro sowieso nicht.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Wenn ich den API-Key mit "https://maps.googleapis.com/maps/api/directions/json?origin=Berlin&destination=Hamburg&key=DEINAPIKEY" aufrufe, werden mir alle Ausgaben angezeigt.
Antworten Top
#5
Zu viele Leerzeichen im zusammengesetzten URL-String (aus dem Makro)?
Teste mal (wir können das ja nicht):
Code:
URL = "https://maps.googleapis.com/maps/api/directions/json?origin=" & Von & "&Destination=" & Nach & "&Key=" & APIKey
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Der Fehler bleibt...schade.

dennoch Danke
Antworten Top
#7
Hallo Ralf,

Zitat:Denn ohne den funktioniert das Makro sowieso nicht.

so genau hatte ich mir den Quelltext nicht angesehen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#8
Moin,

du müsstest halt schrittweise ansetzen, ob der Responsetext in Ordnung ist, ob der JSonParser ein ordentliches Ergebnis zurückgibt, ob der Pfad zum Ergebnis richtig ist und welcher Wert zurückgegeben wird.

Klassisches Debugging eben.

Viel Erfolg 
derHöpp
Antworten Top
#9
Was mich ein wenig wundert ist der Rückgabewert #WERT!
Der dürfte doch nur 0 (oder Entfernungs-km) sein oder in den Debugger laufen.
(DISTANZ = Meter | Meter ist long)

Setze mal
Function DISTANZ(Von As String, Nach As String) As Long
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Nobbi05
Antworten Top
#10
Hallöchen,

1)
setzte in der function mal Haltepunkte und prüfe die Inhalte von JSON und Meter
2)
schaue mal in unseren Beispielbereich. Da findest Du bei den Komplettlösungen auch verschiedene Beispiele zum Thema - derzeit oben auf Seite 3.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste