Кто-то ответил на мой вопрос для Java, и я в основном использую предыдущий ответ, предоставленный @enderland, здесь.
Я использую веб-браузер, и в целом он работает хорошо, но я часто сталкиваюсь с «ошибками времени выполнения». Я хочу избежать этого, пропустив конкретное задание (в моем случае загрузка страницы патента в Google), если время, необходимое для загрузки веб-сайта, занимает слишком много времени.
Я считаю, что простой If Then
- это то, что мне нужно, но я не знаю, какую функцию использовать для управления истечением времени.
Какие-либо предложения?
На данный момент я запускаю следующее:
Function citecount(patent_number As String, patent As String, ccount As Integer, info As String)
patent = ""
ccount = 0
If patent_number = "" Then Exit Function
the_start:
Set ie = CreateObject("InternetExplorer.Application")
ie.Top = 0
ie.Left = 0
ie.Width = 800
ie.Height = 600
ie.Visible = False 'If False we won't see the window navigation
On Error Resume Next
ie.Navigate ("http://www.google.com/patents/US" & patent_number & "?")
Sleep (600)
Do
DoEvents
If Err.Number <> 0 Then
ie.Quit
Set ie = Nothing
GoTo the_start:
End If
Sleep (1250)
Loop Until ie.ReadyState = 4
При этом Sleep()
определяется как:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Основная ошибка, с которой я сталкиваюсь, описана здесь а>. Это Run-time error '2147467259 (80004005) automation error, unspecified error
. Кроме того, до того, как я добавил команды Sleep()
, я также получил Microsoft Excel is waiting for another Application to complete an on OLE action
, но он не вернулся с момента добавления команды Sleep()
.
Наконец я получаю предупреждение IE:
Stop running this script?
A Script on thispage is causing your web browser to run slowly. If it continues to run your computer might become unresponsive
Я думаю, все это вызвано тем фактом, что веб-страница занимает много времени, загружая изображения, которые мне не нужны. Я прочитал несколько сообщений о загрузке веб-страницы непосредственно в html без изображений на SO, но не смог найти тот, который я мог бы реализовать (новичок на работе).
Надеюсь, это даст разъяснения
If Err.Number...
(если это все, что есть) никогда не перехватит ошибку, если перед ней не будетOn Error Resume Next
. - person David Zemens   schedule 29.05.2014