Примечания к вашему коду:
Вам нужно Option Explicit
вверху кода, чтобы проверить объявления переменных и опечатки, а также другие преимущества.Существует несколько пропущенных объявлений, например, result
, а позже использовались, например, Set IE = CreateObject("InternetExplorer.Application")
.У вас есть две разные переменные (одна с поздней границей и одна с ранней), которые создают экземпляры IE.На самом деле вы используете только один.
Ваша текущая ошибка может быть связана с тем, что вы пытаетесь работать с объектом здесь: result = aEle
, который не будет работать без ключевого слова Set
, чтобы предоставить необходимую ссылку.
Без примеров URL и ожидаемого вывода трудно посоветовать о последующих циклах в вашем коде.Похоже, у вас есть дублирующий цикл над элементами IMG, но на этот раз с некоторыми ограничениями.Вероятно, эти циклы можно объединить.
Пример:
В следующем примере используется произвольная конкатенация для извлечения ссылок img src
из поискарезультаты основаны на A2N0015C3KUU
.
. Используется селекторная комбинация CSS #ires img[src]
для нацеливания элементов с тегами img
и src
в родительском элементе с идентификатором ires
(результаты поиска).
Это демонстрация принципа сбора aNodeList
соответствующих элементов и выписывания на лист.Метод querySelectorAll
применил комбинацию селекторов CSS к HTMLDocument
и возвращает нодлист.nodeList
зацикливается вдоль .Length
, с элементами, доступ к которым осуществляется по индексу, начиная с 0.
Option Explicit
Public Sub GetInfo()
Dim IE As New InternetExplorer
With IE
.Visible = True
.navigate "https://www.google.com/search?hl=en&biw=1600&bih=796&tbm=isch&sa=1&ei=CTOpW_2jO6nAjwT67rqACw&q=A2N0015C3KUU&oq=1&%20%22&oq=A2N0015C3KUU&gs_l=img.12...0.0..1704...0.0..0.0.0.......1......gws-wiz-img.9wB6WwQJhwA"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim aNodeList As Object, i As Long
Set aNodeList = IE.document.querySelectorAll("#ires img[src]")
For i = 0 To aNodeList.Length - 1
ActiveSheet.Cells(i + 2, 4) = aNodeList.item(i).src
Next
'Quit '<== Remember to quit application
End With
End Sub