Reinaldo, eu tentei com esta variável mas da erro também,
"A variável e obrigatória - não e possível atribuir a esta expressão", por isso tentei com a lbldistância, achei que tava certo, mas se coloco ela como string da a mesma mensagem ai de cima,
Sub fnPesquisarDistânciasETemposNoGoogleMaps( _
ByVal strEndereçoDePartida As String, _
ByVal strEndereçoDeChegada As String)
''' [email protected]: 2007-10-28
''' [email protected]: 2012-04-14 Rev.01
Dim oKm As Object
Dim oTempo As Object
Dim oAll As Object
Dim oDIV As Object
Dim strRoteiro As String
Dim strKm As String
Dim strTempo As String
Dim aRoteiro() As String
Dim intItem As Integer
Dim objDIV_TravelMode As MSHTML.HTMLDivElement
Dim strTitle As String
Dim objA As MSHTML.HTMLAnchorElement
Dim objLI As MSHTML.HTMLLIElement
Dim lblDistância As String
If IE Is Nothing Then
Set IE = GetObject("", "InternetExplorer.Application.1")
End If
If IE Is Nothing Then
Set IE = CreateObject("InternetExplorer.Application")
End If
Call ShowWindow(IE.hwnd, SW_SHOWMINNOACTIVE)
IE.Visible = True
IE.Top = 0
IE.Left = 0
IE.Width = GetSystemMetrics(SM_CXFULLSCREEN)
IE.Height = GetSystemMetrics(SM_CYFULLSCREEN)
ieHwnd = IE.hwnd
IE.PutProperty "tagExcelBr", 1
frmPesquisarGoogleMaps.lblMsg = "Navegando para GoogleMaps..."
IE.Navigate2 " http://maps.google.com.br/maps?f=pt-BR,Curitiba&geocode"
While IE.Busy: DoEvents: Wend
Do While IE.Document.ReadyState <> "complete": DoEvents: Loop
frmPesquisarGoogleMaps.lblMsg = "Capturando os dados..."
With frmPesquisarGoogleMaps
IE.Document.all("d_d").Value = strEndereçoDePartida
IE.Document.all("d_daddr").Value = strEndereçoDeChegada
IE.Document.all("d_sub").Click
While IE.Busy: DoEvents: Wend
Do While IE.Document.ReadyState <> "complete": DoEvents: Loop
Do While IE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Loop
lblDocumentAll:
For Each oDIV In IE.Document.all.tags("DIV")
If InStr(oDIV.className, "dir_warnbox_msg") > 0 Then
frmPesquisarGoogleMaps.lblMsg = "Falha: partida ou destino não localizados"
GoTo lblSair
End If
Next
.lblPartidaRetornado = IE.Document.all("ddw_addr_area_0").outerText
.lblChegadaRetornado = IE.Document.all("ddw_addr_area_1").outerText
aRoteiro = Split(IE.Document.all("ddr0").outerText, Chr(13))
Set oAll = IE.Document.getElementsByTagName("B")
For Each oKm In oAll
If InStr(oKm.outerText, "") > 0 Then
strKm = oKm.outerText
Exit For
End If
Next
For Each oTempo In oAll
If InStr(oTempo.outerText, " minuto") > 0 Then
strTempo = oTempo.outerText
Exit For
End If
Next
Set objDIV_TravelMode = IE.Document.GetElementByID("travel_modes_div")
Set objA = objDIV_TravelMode.FirstChild.NextSibling
objA.FireEvent ("onClick")
Set objLI = IE.Document.GetElementByID("altroute_0")
strKm = objLI.getElementsByTagName("span")(0).outerText
strTempo = objLI.getElementsByTagName("span")(1).outerText
strRoteiro = objLI.getElementsByTagName("div")(2).outerText
strTitle = objA.Title
'.lblFormaDeDeslocamento = strTitle
.lblDistância = strKm
.lblTempo = strTempo
.lblRoteiro = strRoteiro
If UBound(aRoteiro) > 0 Then
For intItem = LBound(aRoteiro) To UBound(aRoteiro)
If Len(Trim(aRoteiro(intItem))) > 1 Then
If intItem = 0 Then
.lstRoteiro.AddItem Trim(Right(aRoteiro(intItem), Len(aRoteiro(intItem))))
Else
.lstRoteiro.AddItem Trim(Right(aRoteiro(intItem), Len(aRoteiro(intItem)) - 1))
End If
End If
Next
End If
End With
lblSair:
'frmCadastroServiçosConvenio.TxtKm.Text = strKm
frmCadastroServiçosConvenio.TxtKm.Text = Left(strKm, Len(strKm - 2))
Exit Sub
End Sub
Postado : 17/05/2012 9:42 am