29.09.2016, 15:20
Hallo Zusammen :s,
ich habe Folgendes Problem und schaff es leider nicht es selber zu lösen.
Ich habe ein Funktion mit der ich über GoogleMaps mir die Entfernung zwischen zwei
Städten berechnen lasse. Jetzt möchte ich sie aber gern in eine Schleife einbauen
das mir auf einmal eine Entfernungsmatrix gefüllt wird. Beispielsweise 10 Städte und als Output
sollte dann die 10x10 Matrix mir allen Entfernungen gefüllt werden.
Es müsste doch so in der Art aussehen oder ? Frage ist jetzt wie ich die zwei Geschichten verbinde..
Ich hoff Ihr könnt mir helfen.
Sub Schleifen()
Dim i As Integer, j As Integer, k As Integer
k = 0
For i = 1 To 10
For j = 1 To 10
k = ???
Cells(i, j).Value = k
Next j
Next i
End Sub
Hier die Funktion:
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
firstVal = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="
secondVal = "&destinations="
lastVal = "&key=AIzaSyBtYr596Le1N1GRCModwPrwYxBS8y5ZYtg"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
Set matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(0).SubMatches(0), ".", Application.International(xlListSeparator))
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
Vielen Dank für die Hilfe im Voraus. Falls ich was vergessen habe bitte sagen, ist mein erster Beitrag hier im Forum :23:.
Viele Grüße,
Max
ich habe Folgendes Problem und schaff es leider nicht es selber zu lösen.
Ich habe ein Funktion mit der ich über GoogleMaps mir die Entfernung zwischen zwei
Städten berechnen lasse. Jetzt möchte ich sie aber gern in eine Schleife einbauen
das mir auf einmal eine Entfernungsmatrix gefüllt wird. Beispielsweise 10 Städte und als Output
sollte dann die 10x10 Matrix mir allen Entfernungen gefüllt werden.
Es müsste doch so in der Art aussehen oder ? Frage ist jetzt wie ich die zwei Geschichten verbinde..
Ich hoff Ihr könnt mir helfen.
Sub Schleifen()
Dim i As Integer, j As Integer, k As Integer
k = 0
For i = 1 To 10
For j = 1 To 10
k = ???
Cells(i, j).Value = k
Next j
Next i
End Sub
Hier die Funktion:
Public Function GetDistance(start As String, dest As String)
Dim firstVal As String, secondVal As String, lastVal As String
firstVal = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="
secondVal = "&destinations="
lastVal = "&key=AIzaSyBtYr596Le1N1GRCModwPrwYxBS8y5ZYtg"
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = firstVal & Replace(start, " ", "+") & secondVal & Replace(dest, " ", "+") & lastVal
objHTTP.Open "GET", URL, False
objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
objHTTP.send ("")
If InStr(objHTTP.responseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set regex = CreateObject("VBScript.RegExp"): regex.Pattern = """value"".*?([0-9]+)": regex.Global = False
Set matches = regex.Execute(objHTTP.responseText)
tmpVal = Replace(matches(0).SubMatches(0), ".", Application.International(xlListSeparator))
GetDistance = CDbl(tmpVal)
Exit Function
ErrorHandl:
GetDistance = -1
End Function
Vielen Dank für die Hilfe im Voraus. Falls ich was vergessen habe bitte sagen, ist mein erster Beitrag hier im Forum :23:.
Viele Grüße,
Max