Página 1 de 1

Copiar informação da Internet pelo VBA

Enviado: 25 Mai 2018 às 15:04
por R0DR1G0CWB
Olá, estou criando um crawler em vba para manter atualizado certas informações que busco manualmente.

Minha dúvida até que é simples. Estou fazendo o seguinte FOR:

For Each i In IE.Document.body.getElementsByTagName("span")

o i recebe o seguinte valor "[obejct HTMLSpanElement]"

Até aqui beleza, mas como na página existe vários "spans" encontrei a dificuldade de identificar o qual preciso.
Página: https://www.ferramentaskennedy. ... cs72Xp16At

Com o apoio do Chrome vejo o seguinte:
No código: <span class="valor h6"> R$ 1.598,00 </span>

Demais infos:
span.valor.h6
innerText: "R$ 1.598,00"

Tentei fazer o FOR assim:
For Each i In IE.Document.body.getElementsByTagName("span.valor.h6")

Mas não localiza a informação e pula essa etapa.

Tentei também:
For Each i In IE.Document.body.getElementsByTagName("span").getAttributesByClassName("valor h6")

Que gera o erro:
Erro em tempo de execução '438'
O objeto não aceita esta propriedade ou método


Outra forma que tentei, também com o erro 438:

For Each i In ie.Document.body.getElementsByTagName("span")
For Each j In ie.Document.body.getElementsByClassName("valor h6") 'até aqui esta rodando
vlr = ie.Document.body.getElementsByClassName("valor h6").innerText 'aqui gera o erro 438
Next j
Next i


Já visitei alguns sites e fóruns diferentes e não encontro a resposta, agradeço quem puder me ajudar.

Re: Copiar informação da Internet pelo VBA

Enviado: 07 Jun 2018 às 08:24
por R0DR1G0CWB
Questão resolvida.

Para quem passar pela mesma situação eu estava errando na sintaxe da biblioteca utilizada do Microsoft Internet Controls.

A forma correta é:
Código: Selecionar todos
        For Each i In ie.Document.body.getElementsByTagName("span")
          If i.className = "valor h6" Then
            vlr = i.innerText
            Range("C" & cont).Value = vlr
          End If
        Next i