Navigate2调试

时间:2015-09-18 19:03:23

标签: vba excel-vba internet-explorer beforenavigate2 excel

我正在尝试通过VBA创建一个宏,以在IE上的多个选项卡中打开一组指定的链接。目前我正在使用下面的代码,如果我尝试打开3个或更少的标签,它大部分时间都可以使用。任何超过3的代码都会在“Navigate2”部分崩溃。经过一些研究,我似乎无法找到一个共同的问题或解决方案。代码看起来类似于下面(链接已被删除,原因很明显)。

非常感谢任何帮助。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

关于objIE.Navigate2 strURL, 2048

中的2048

摘自Microsoft Developer Network,MSHTML参考,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 ...