Перезапись, которую я бы использовал, включала бы синхронизированный цикл, чтобы убедиться, что таблица успела загрузить и выйти, если таблицы нет. Падение производительности при использовании селекторов атрибутов, которые гораздо более информативны и самоочевидны в том, что они делают, например, над селекторами классов, настолько мало, что в этом случае они незначительны.
'VBE > Tools > References: Microsoft Internet Controls
Public Sub GetPriceInfo()
Dim ie As New InternetExplorer, url As String, ws As Worksheet
Dim t As Date, clipboard As Object, hTable As Object
url = "https://laevapiletid.ee/"
Const ADULTS As Long = 2
Const MAX_WAIT_SEC As Long = 10
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
With ie
.Visible = True
.Navigate2 url
While .Busy Or .readyState < 4: DoEvents: Wend
With .document
.querySelector("[name=trip_outbound] [value='HEL-TAL']").Selected = True
.querySelector("[name=trip_outbound_date]").Value = "14.05.2019"
.querySelector("[name=trip_inbound] [value='TAL-HEL']").Selected = True
.querySelector("[name=trip_inbound_date]").Value = "15.05.2019"
.querySelector("#adultSpinnerValue").Value = ADULTS
.querySelector("[name=vehicle] [value='NONE']").Selected = True
.querySelector("[type=submit]").Click
t = Timer
Do
On Error Resume Next
Set hTable = .querySelector("#travels_tableOutbound")
On Error GoTo 0
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While hTable Is Nothing
End With
If InStr(hTable.outerHTML, "Arvutan...") > 0 Then
t = Timer
Do
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop Until Not InStr(hTable.outerHTML, "Arvutan...") > 0
Set hTable = .document.querySelector("#travels_tableOutbound")
End If
If hTable Is Nothing Then Exit Sub
clipboard.SetText hTable.outerHTML
clipboard.PutInClipboard
ws.Range("A1").PasteSpecial
.Quit
End With
End Sub