Nill2013Br
New Member
- Joined
- Feb 23, 2018
- Messages
- 1
Estou adaptando o código abaixo e encontrei uma situação em que não posso extrair os dados. Na parte final do código, você indica onde o Loop é feito para encontrar o objeto da tabela e os objetos do Conjunto CEP estão localizados, se você está localizado, você indica a partir de qual objeto como informação a ser salvas no indicado a célula deve ser recuperada. Eu segui o script inteiro e no meu novo aplicativo não aparece um identificador para o objeto do qual eu quero extrair uma informação. Estou deixando dois anexos onde aparece os objetos que eu quero extrair e nenhum outro anexo ou id dos objetos que eu quero extrair. Você pode me ajudar a resolver, obrigado.
Esta é a impressão das telas para indicar o que eu quero extrair:
https://drive.google.com/file/d/15-HDro-x8uinT1Cd8nvFhVfjRA067-tZ/view?usp=sharing
https://drive.google.com/file/d/1uz9gXKj12UksDTy04iueDDHIpBbKyHha/view?usp=sharing
https: //drive.google.com/file/d/14_T7_W6rxxEqggVj4xC6fLA00OjaP27C/view?usp=sharing
A parte para a extração seria assim.
Para cada eu não IE.Document.body.getElementsByTagName ("tabela")
Se InStr (i.innertext, "code")> 0 Then
For Each l In i.getElementsByTagName ("tr")
Se InStr (l.innertext, Organ ) Então
Range ("C" e lContent) .Value = l.getElementsByTagName ("LACK THIS ID") (1) .innertext - e como extraio como outras informações porque existem duas situações.
[CÓDIGO]'
Em resumo de erros, Next
ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
Sub de fim de
sessão Sub lsSearchElement ()
'Incluir referência se não houver
lReferenciaIE
Dim IE como InternetExplorer
Dim lCidade As String
Dim lUF As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
'Identifica a última célula ativa na lista
(Folhas de Trabalho ("Plan1"). Rows.Count, 1) .End (xlUp) .Row
' Cria um objeto do Internet Explorer
Set IE = Novo InternetExplorer
'Tornar o objeto visível
IE.Visible = True
'Loops através de todas as linhas na planilha
Para lContador = 2 Para lastLineActive
' Navegue até o site da postagem
IE.Navigate "http://www.buscacep.correios.com.br/servicos/dnec/menuAction .do? Metodo = menuFaixaCep "
'Identifica se a página já foi totalmente carregada
enquanto IE.ReadyState <> READYSTATE_COMPLETE
Wend
' Como a página possui JavaScript que cria objetos que são preenchidos após carga completa, você precisa
" esperar um pouco, colocar 3 segundos, mude conforme necessário.
'Se você não tiver javascript na criação de objetos de página, comente esta parte do código, porque estará bem
'execução mais rápida.
sng = Timer
Do While sng + 3> Timer
Loop
'Carregue os dados da cidade e UF que serão preenchidos na página
lCidade = Range ("B" & lCounter) .Value
lUF = Range ("A" e lCounter) .Value
' Carregue dados da cidade e da UF na página e
subforme os dados do formulário IE.Document.all ("Locality"). Innertext = lCity
IE.Document.all ("UF"). Valor = lF
IE.Document.forms ("Geral").
'Identifica se a página já foi totalmente carregada
enquanto IE.ReadyState <> READYSTATE_COMPLETE
Wend
"Porque a página possui JavaScript que cria objetos que são preenchidos após carga total, você precisa
" esperar um pouco, colocar 3 segundos, mudar conforme necessário ".
"Se você não tiver javascript na criação de objetos de página, comente esta parte do código, porque será
uma execução bem rápida".
sng = Timer
Do While sng + 3>
Loop Loop
'Loops tabela objetos na página e pesquisa o código postal: (s) campo preenchido.
' Então ele procura a segunda coluna da linha de código postal e armazena esta informação diretamente na coluna C da linha
'da planilha
para cada i no IE.Document.body.getElementsByTagName ("tabela")
Se InStr (i.innertext, "Código Postal (s):")> 0 Então
Para Cada l Em i.getElementsByTagName ("tr")
Se InStr (l.innertext, lCity), então
Range ("C" e lContent). Valor = l.getElementsByTagName ("td") (1) .innertext
End If
Next l
End If
Next i
Próximo lContent
MsgBox "Done!"
End Sub [/ CODE]
Esta é a impressão das telas para indicar o que eu quero extrair:
https://drive.google.com/file/d/15-HDro-x8uinT1Cd8nvFhVfjRA067-tZ/view?usp=sharing
https://drive.google.com/file/d/1uz9gXKj12UksDTy04iueDDHIpBbKyHha/view?usp=sharing
https: //drive.google.com/file/d/14_T7_W6rxxEqggVj4xC6fLA00OjaP27C/view?usp=sharing
A parte para a extração seria assim.
Para cada eu não IE.Document.body.getElementsByTagName ("tabela")
Se InStr (i.innertext, "code")> 0 Then
For Each l In i.getElementsByTagName ("tr")
Se InStr (l.innertext, Organ ) Então
Range ("C" e lContent) .Value = l.getElementsByTagName ("LACK THIS ID") (1) .innertext - e como extraio como outras informações porque existem duas situações.
[CÓDIGO]'
Em resumo de erros, Next
ThisWorkbook.VBProject.References.AddFromGuid "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}", 1, 1
Sub de fim de
sessão Sub lsSearchElement ()
'Incluir referência se não houver
lReferenciaIE
Dim IE como InternetExplorer
Dim lCidade As String
Dim lUF As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
'Identifica a última célula ativa na lista
(Folhas de Trabalho ("Plan1"). Rows.Count, 1) .End (xlUp) .Row
' Cria um objeto do Internet Explorer
Set IE = Novo InternetExplorer
'Tornar o objeto visível
IE.Visible = True
'Loops através de todas as linhas na planilha
Para lContador = 2 Para lastLineActive
' Navegue até o site da postagem
IE.Navigate "http://www.buscacep.correios.com.br/servicos/dnec/menuAction .do? Metodo = menuFaixaCep "
'Identifica se a página já foi totalmente carregada
enquanto IE.ReadyState <> READYSTATE_COMPLETE
Wend
' Como a página possui JavaScript que cria objetos que são preenchidos após carga completa, você precisa
" esperar um pouco, colocar 3 segundos, mude conforme necessário.
'Se você não tiver javascript na criação de objetos de página, comente esta parte do código, porque estará bem
'execução mais rápida.
sng = Timer
Do While sng + 3> Timer
Loop
'Carregue os dados da cidade e UF que serão preenchidos na página
lCidade = Range ("B" & lCounter) .Value
lUF = Range ("A" e lCounter) .Value
' Carregue dados da cidade e da UF na página e
subforme os dados do formulário IE.Document.all ("Locality"). Innertext = lCity
IE.Document.all ("UF"). Valor = lF
IE.Document.forms ("Geral").
'Identifica se a página já foi totalmente carregada
enquanto IE.ReadyState <> READYSTATE_COMPLETE
Wend
"Porque a página possui JavaScript que cria objetos que são preenchidos após carga total, você precisa
" esperar um pouco, colocar 3 segundos, mudar conforme necessário ".
"Se você não tiver javascript na criação de objetos de página, comente esta parte do código, porque será
uma execução bem rápida".
sng = Timer
Do While sng + 3>
Loop Loop
'Loops tabela objetos na página e pesquisa o código postal: (s) campo preenchido.
' Então ele procura a segunda coluna da linha de código postal e armazena esta informação diretamente na coluna C da linha
'da planilha
para cada i no IE.Document.body.getElementsByTagName ("tabela")
Se InStr (i.innertext, "Código Postal (s):")> 0 Então
Para Cada l Em i.getElementsByTagName ("tr")
Se InStr (l.innertext, lCity), então
Range ("C" e lContent). Valor = l.getElementsByTagName ("td") (1) .innertext
End If
Next l
End If
Next i
Próximo lContent
MsgBox "Done!"
End Sub [/ CODE]