【问题标题】:Navigate2 DebuggingNavigate2 调试
【发布时间】:2015-12-16 00:46:47
【问题描述】:

我正在尝试通过 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

【问题讨论】:

  • 您是否收到错误消息? 2048 的价值是什么?
  • 是的@ChipsLetten,我在同一行得到了错误的组合。它们都是:“运行时错误'-2147467259(80004005)':对象'IWebBrowser2'的方法'Navigate2'失败”和“运行时错误'-2147467259(80004005)':自动化错误未指定错误”
  • 你检查过你使用的网址没问题吗?您使用 Navigate2 是因为它不是网址吗? 2048 的价值是什么?
  • 网址没问题。我每天都使用它们。要回答你的第二个问题,老实说,我不确定。在几个站点上看到了这个特定的代码,理论上应该完全符合我的需要。经过一些快速研究,似乎 Navigate2 用于打开初始选项卡之外的其他选项卡,而不是单独的窗口。没有对 2048 值的解释。我在其他类似的代码上看到过。
  • 我很好奇这个功能可以打开的标签数量是否有限制。或者窗口打开太快,无法与初始选项卡通信。

标签: vba excel internet-explorer beforenavigate2


【解决方案1】:

您可以尝试添加检查 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

【讨论】:

  • 不幸的是,这不起作用@ChipsLetten。它一次只会做2或3个。我一直在研究等待/忙碌语句,但似乎没有任何效果。
【解决方案2】:

关于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 ...

【讨论】:

  • Keith,你在这里想表达什么非常不清楚。 OP 正在使用“在新选项卡中打开”标志,因为这是所需的行为。似乎与 OP 试图解决的崩溃无关。这也许应该是评论,而不是答案。
猜你喜欢
  • 2012-02-19
  • 2012-12-07
  • 1970-01-01
  • 2021-11-24
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
相关资源
最近更新 更多