2015-09-18 11 views
1

Я пытаюсь создать макрос через VBA, чтобы открыть указанный набор ссылок в нескольких вкладках в IE. В настоящее время я использую код ниже, и он работает большую часть времени, если я пытаюсь открыть 3 или менее вкладки. Что-то большее, чем 3, код выходит из строя в разделе «Навигация». После некоторых исследований я не могу найти общую проблему или решение для этого. Код выглядит так, как показано ниже (ссылки были удалены по понятным причинам).Navigate2 Debugging

Любая помощь была бы принята с благодарностью.

Sub USD_ILB() 
    Dim strURL As String 
    Dim file_date As String 
    Dim objIE As Object 
    Dim arrSites(4) 

    file_date = Format(Cells(1, 2), "dd.mm.yyyy") 

    arrSites(0) = "URL1" 
    arrSites(1) = "URL2" 
    arrSites(2) = "URL3" 
    arrSites(3) = "URL4" 
    arrSites(4) = "URL5" 
    Set objIE = CreateObject("InternetExplorer.Application") 
    For i = 0 To 4 Step 1 
    strURL = arrSites(i) 
    If i = 0 Then 
     objIE.Navigate strURL 
    Else 
     objIE.Navigate2 strURL, 2048 
    End If 
    Next i 
    objIE.Visible = True 
    Set objIE = Nothing 

End Sub 
+0

Вы получаете сообщение об ошибке? Для чего стоит значение 2048? – ChipsLetten

+0

Да @ChipsLetten, я получаю комбинацию ошибок в одной строке. Они оба являются: "Ошибка выполнения '-2147467259 (80004005)': Метод 'Navigate2' объекта 'IWebBrowser2" Ошибка & «Ошибка выполнения '-2147467259 (80004005)': Ошибка автоматизации Unspecified error " – thetvck

+0

Вы проверили, что URL-адрес, который вы используете, в порядке? Вы используете Navigate2, потому что это не веб-адрес? Каково значение 2048? – ChipsLetten

ответ

0

Вы можете попробовать добавить проверку, занят ли IE.

For i = 0 To 4 Step 1 
    Do While objIE.Busy 
     DoEvents 
    Loop 
    strURL = arrSites(i) 
    If i = 0 Then 
     objIE.Navigate strURL 
    Else 
     objIE.Navigate2 strURL, 2048 
    End If 
Next i 
+0

К сожалению, это не сработало @ChipsLetten. Это будет делать только 2 или 3 за раз. Я изучал сообщения о оживлении, но ничего не работает. – thetvck

0

Что касается 2048 в objIE.Navigate2 strURL, 2048

Выдержки из Microsoft Developer Network, MSHTML Reference, IWebBrowser2

object.Navigate2(URL, Flags, TargetFrameName, PostData, Headers) 

Flags [in, optional] 
.. a combination of the values defined by the BrowserNavConstants enumeration 

Enum BrowserNavConstants: ... navOpenInNewTab = 2048 ... 
+0

Кейт, очень неясно, что вы пытаетесь передать здесь. OP использует флаг «открыть в новой вкладке», потому что это желаемое поведение. Кажется, что нет никакой связи с сбоем, который пытается решить ОП. Возможно, это комментарий, а не ответ. – Tibrogargan