Трудно сказать, не видя HTML / URL.Вы убедились, что селектор правильный?
В противном случае основные две вещи, которые вы можете сделать сейчас, в отношении предоставления достаточного времени для загрузки страницы:
1) Добавьте правильное ожидание перед попыткой выбрать
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
2) Попробуйте синхронизированный цикл, чтобы увеличить время загрузки
Option Explicit
Public Sub LoopUntilSet()
Dim price As Object, t As Date
Const MAX_WAIT_SEC As Long = 5
'your other code
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
t = Timer
Do
DoEvents
On Error Resume Next
Set price = ie.document.querySelector(".price-cont .price")
If Timer - t > MAX_WAIT_SEC Then Exit Do
On Error GoTo 0
Loop
If price Is Nothing Then Exit Sub
'other code.....
End Sub
3) Снимите [] с i