Итак, обращаясь к вашему коду
- Вы можете использовать более короткую версию
Target.Address = Range("Title").Address
- . Вам не нужен первый элемент тега
a
.Требуется первый результат поиска a
элемент тега.
Вы можете использовать комбинацию селекторов CSS, чтобы получить первый результат поиска a
элемент тега, как показано ниже.
Iиспользуйте комбинацию селектора CSS .result_text a
для нацеливания элементов в родительском классе result_text
с тегом a
..
является селектором класса .
Эта комбинация называется селектором потомков .
Использование поискового термина в листе Red October
это первый результат CSS-запроса:
Это относительная ссылка с базовой строкой https://www.imdb.com
.
Применение с помощью метода querySelector
означает, что возвращается только первый соответствующий результат, то есть максимальный результат.
VBA:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = Range("Title").Address Then
Dim ie As New InternetExplorer
ie.Visible = True
ie.navigate "https://www.imdb.com/find?ref_=nv_sr_fn&q=" & Range("Title").value
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Dim doc As HTMLDocument
Set doc = ie.document
doc.querySelector(".result_text a").Click
'other code
End If
Application.EnableEvents = True
End Sub