Это, вероятно, проблема с синхронизацией согласно моему комментарию.Об этом говорится в других ответах на подобные вопросы.Основные моменты, которые следует учитывать:
- Используйте правильные ожидания загрузки страницы:
While IE.Busy Or ie.readyState < 4: DoEvents: Wend
- Возможно синхронизированный цикл , чтобы попытаться установить элемент в переменную затемтестирование, если установлено.
В качестве альтернативы, немного глупо, но кажется, что все предоставленные даты совпадают с датами публикации (дата публикации патента).Если это так, то вы можете использовать xhr для получения даты публикации
Option Explicit
Public Sub GetDates()
Dim html As HTMLDocument, i As Long, patents()
patents = Array("US7724240", "US6876312", "US8259073", "US7523862", "US6816842B1")
Set html = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
For i = LBound(patents) To UBound(patents)
.Open "GET", "https://patents.google.com/patent/" & patents(i) & "/en?oq=" & patents(i), False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.send
html.body.innerHTML = .responseText
If html.querySelectorAll("[itemprop=publicationDate]").length > 0 Then
Debug.Print html.querySelector("[itemprop=publicationDate]").DateTime
End If
Next
End With
End Sub