none
Erro 91 - A variável do objeto ou a variável do bloco 'With' não foi definida RRS feed

  • Pergunta

  • Olá a todos, sou iniciante no vba. Comecei a uma semana estudar vba.

    Com a ajuda de um amigo fiz um código para consulta de dados a um sistema na intra net de minha empresa. Ele funciona quase perfeito, a não ser pelo problema do erro 91, diz que não declareia a variavel white.

    Agradeço a qualquer ajuda.
    segue o trecho em que consiste o erro : IE.Document.All("formTemplate:j_id34").innertext = lCidade

    'Inclui referência ao Microsoft Internet Controls
    Sub lReferenciaIE()
        Dim ObRef
        On Error Resume Next
    
        ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
    End Sub
    
    Sub lsPesquisarCEPFaixa()
        'Inclui a referência se não houver
        lReferenciaIE
        
        Dim IE                  As InternetExplorer
        Dim lCidade             As Variant
        Dim lUF                 As Variant
        Dim lUltimaLinhaAtiva   As Long
        Dim lContador           As Long
        
        'Identifica a última célula ativa da lista
        lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
        
        'Cria um objeto Internet Explorer
        Set IE = New InternetExplorer
            
        'Torna o objeto visível
        IE.Visible = True
    
        'Faz um loop por todas as linhas da planilha
        For lContador = 2 To lUltimaLinhaAtiva
            'Navega ao site dos correios
            IE.Navigate "xxxxxxxxxxxxxxx"
            
            'Identifica se a página já foi totalmente carregada
            While IE.ReadyState <> READYSTATE_COMPLETE
            Wend
            
            'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
            'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
            'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
            'mais rápida a execução.
            sng = Timer
            Do While sng + 3 > Timer
            Loop
            
            'Carrega os dados de cidade e UF que serão preenchidos na página
            lCidade = Range("B" & lContador).Value
            lUF = Range("A" & lContador).Value
            
            'Carrega os dados de cidade e UF na página e submente os dados do formulário
            IE.Document.All("formTemplate:j_id34").innertext = lCidade
            IE.Document.All.Item("formTemplate:j_id52").Click
            IE.Document.All("formTemplate:j_id85").innertext = lUF
            IE.Document.All.Item("formTemplate:j_id114").Click
    
         
    
                   
                   'Identifica se a página já foi totalmente carregada
            While IE.ReadyState <> READYSTATE_COMPLETE
            Wend
    
            'Como a página possui JavaScript que cria os objetos que são preenchidos após a carga completa, é necessário
            'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
            'Caso não tenha javascript na criação dos objetos da página comentar esta parte do código, pois será bem
            'mais rápida a execução.
            sng = Timer
            Do While sng + 3 > Timer
            Loop
           
            'Faz um loop pelos objetos do tipo table na página e procura pelo campo Faixa(s) de CEP: preenchido.
            'Em seguida busca pela segunda coluna da linha de faixa de CEP e armazena esta informação diretamente na coluna C da linha
            'da planilha
            For Each i In IE.Document.body.getElementsByTagName("table")
                If InStr(i.innertext, "Mensagem:") > 0 Then
                    For Each l In i.getElementsByTagName("tr")
                        If InStr(l.innertext, lCidade) Then
                            Range("C" & lContador).Value = l.getElementsByTagName("td")(3).innertext
                          
                        End If
                    Next l
                End If
            Next i
        Next lContador
        
        MsgBox "Concluído!"
    End Sub
    

    quinta-feira, 24 de setembro de 2015 16:43

Respostas

Todas as Respostas