Ошибка выполнения VBA 13: несоответствие типов при вызове функции с HTMLDocument в качестве аргумента
Приведенный ниже код отлично работает на одной машине и возвращает ошибку на второй при вызове функции с двумя параметрами (при вызове с одним параметром она работает нормально). Функция находится в другом модуле. Кто-нибудь может дать мне совет, что может быть не так с этим?
На обеих машинах работает Excel 2016 и IE11.
Dim ie As InternetExplorer
Dim htmlDoc As MSHTML.HTMLDocument
Set ie = New InternetExplorerMedium
With ie
.Silent = True
.navigate serverURL 'URL as string
.Visible = False
End With
Set htmlDoc = ie.document
Call WaitForLoad(ie) 'this works fine
For Each htmlElement In htmlDoc.getElementsByTagName("input")
If htmlElement.Type = "submit" Then htmlElement.Click: Exit For
Next
Call WaitForLoad(ie, htmlDoc) 'this returns Run-time error 13: Type mismatch
Функции:
Public Function WaitForLoad(browser As InternetExplorer, _
Optional ByVal doc1 As MSHTML.HTMLDocument, _
Optional ByVal doc2 As MSHTML.HTMLDocument) _
As Variant
If Not browser Is Nothing Then
Call LoadTimeoutSettings
Do
DoEvents
Loop Until (browser.readyState = READYSTATE_COMPLETE) Or (Now > StopTime)
End If
If Not doc1 Is Nothing Then
Call LoadTimeoutSettings
Do
DoEvents
Loop Until (doc1.readyState = "complete") Or (Now > StopTime)
End If
If Not doc2 Is Nothing Then
Call LoadTimeoutSettings
Do
DoEvents
Loop Until (doc2.readyState = "complete") Or (Now > StopTime)
End If
End function
Function LoadTimeoutSettings()
StartTime = Now
StopTime = StartTime + TimeValue(TimeOut) 'TimeOut="00:00:15"
End Function