Я бы расширил Const, поскольку именно там должно быть определено время ожидания.Затем реорганизуйте свой код, чтобы вы могли выйти раньше, если сможете установить целевой элемент.Проверить элемент «Ничего нет» в элементе «Set» и выполнить только следующие строки (связанные с этим URL-адресом), если параметр «Нет, ничто».
Мне немного неловко из-за структуры навигации в цикле, и я хотел бы проверить,у вас есть какие-либо URL, которые вы знаете, повесить.Как я сейчас добавил, установив элемент и перейдя в тот же блок, вы можете добавить еще одну секунду или две к Const.
Option Explicit
Public Sub test()
Const MAX_WAIT_SEC As Long = 10
'other code
Set wks = wb.Sheets("wavemotion")
LastRow = wks.Cells(Rows.Count, "B").End(xlUp).Row
ie.Visible = True
For i = 2 To LastRow
mylink = wks.Cells(i, 2).Value
t = Timer
Do
DoEvents
ie.Navigate2 mylink
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
On Error Resume Next
Set availability = ie.document.querySelector(".stock.in-stock ")
On Error GoTo 0
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While availability Is Nothing
If Not availability Is Nothing Then
wks.Range(Cells(i, 1), Cells(i, 5)).Interior.ColorIndex = 38
Set product_sku = ie.document.querySelector(".single-product__sku")
wks.Cells(i, "A").Value = product_sku.innerText
Set price = ie.document.querySelector(".price .woocommerce-Price-amount")
wks.Cells(i, "E").Value = price.innerText
wks.Cells(i, "D").Value = availability.innerText
Set product_name = ie.document.querySelector(".single-product__title")
wks.Cells(i, "C").Value = product_name.innerText
Set product_color = ie.document.querySelector(".single-product__colors__label ")
wks.Cells(i, "G").Value = product_color.innerText
wks.Range(Cells(i, 1), Cells(i, 5)).Interior.ColorIndex = 0
Set price = Nothing: Set availability = Nothing '.... etc
End If
Next i
ie.Quit
Set ie = Nothing
End Sub