Hallo,
Ik heb de onderstaande code in een ander bericht gevonden. Een kleine aanpassing zorgt ervoor dat de de afstand nu wel gelezen wordt. Maar dit gebeurt alleen als ik met de debugger van breakpoint naar breakpoint door het script loop. Zodra ik de breakpoints weghaal en de functie aanroep, start de ANWB pagina wel, zie ik ook dat de route bepaald wordt, maar krijg ik geen afstand terug. Iemand enig idee waardoor dit komt?
Option Explicit
Public Function AfstandANWB(strName1 As String, strName2 As String) As String
Dim objAll As Object
Dim objDiv As Object
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "http://www.anwb.nl/verkeer/routeplanner?name1=" & strName1 & "&modality1=car&routeType1=fast&name2=" & strName2 'am_2014
Do While .Busy Or .readyState <> 4
DoEvents
Loop
Application.Wait (Now() + TimeValue("00:00:01"))
For Each objDiv In .Document.getElementsByTagName("div")
If objDiv.ClassName = "distanceBox box" Then
For Each objAll In objDiv.getElementsByTagName("*")
If objAll.ClassName = "distance" Then
'AfstandANWB = objAll.getAttribute("data-distance") 'lengte in meters, waarde zonder eenheid
AfstandANWB = objAll.InnerText 'lengte in meters/kilometers, waarde met eenheid
End If
Next
End If
Next
.Quit
End With
End Function
Ik heb de onderstaande code in een ander bericht gevonden. Een kleine aanpassing zorgt ervoor dat de de afstand nu wel gelezen wordt. Maar dit gebeurt alleen als ik met de debugger van breakpoint naar breakpoint door het script loop. Zodra ik de breakpoints weghaal en de functie aanroep, start de ANWB pagina wel, zie ik ook dat de route bepaald wordt, maar krijg ik geen afstand terug. Iemand enig idee waardoor dit komt?
Option Explicit
Public Function AfstandANWB(strName1 As String, strName2 As String) As String
Dim objAll As Object
Dim objDiv As Object
With CreateObject("InternetExplorer.Application")
.Visible = True
.Navigate "http://www.anwb.nl/verkeer/routeplanner?name1=" & strName1 & "&modality1=car&routeType1=fast&name2=" & strName2 'am_2014
Do While .Busy Or .readyState <> 4
DoEvents
Loop
Application.Wait (Now() + TimeValue("00:00:01"))
For Each objDiv In .Document.getElementsByTagName("div")
If objDiv.ClassName = "distanceBox box" Then
For Each objAll In objDiv.getElementsByTagName("*")
If objAll.ClassName = "distance" Then
'AfstandANWB = objAll.getAttribute("data-distance") 'lengte in meters, waarde zonder eenheid
AfstandANWB = objAll.InnerText 'lengte in meters/kilometers, waarde met eenheid
End If
Next
End If
Next
.Quit
End With
End Function