Internet Explorer 导航中使用的相同代码具有不同的结果

问题描述 投票:0回答:1

我面临的问题是,在不同工作簿中的两个不同 Excel 宏中,我使用 Internet Explorer 通过 URL 的字符串变量进行导航。

IExplorer 创建和导航部分的代码类似,它们仅在字符串构造上有所不同,但是如果我们比较两种情况下的字符串(通过添加监视或复制/粘贴),它们是相同的。

我分配的字符串是一个普通的 URL,由多个字符串组合而成。

  • 对于工作簿 A,此字符串由多个调用和响应组成,有助于构建最终字符串。
  • 对于工作簿 B,部分字符串写入单元格中,然后用于构建字符串以与工作簿 A 最终字符串进行调用。

一切正常,除了在工作簿 B 中导航到完整 URL 时,它不会传输整个 URL,它省略了最后一部分,即“查询”部分,如“?type=ST”,但 dataurl确实有完整的字符串。

现在最好的部分是,如果我写下 URL 的完整字符串: IE.Navigate“https://www.marketwatch.com/investing/stock/aapl?Mod=search”它可以工作并导航到完整的 URL(这是一个示例)

这是正在使用的代码:

Function calling(dataurl As String) As String

Dim IE As InternetExplorer
Dim htmldoc As New HTMLDocument
Set IE = CreateObject("InternetExplorer.Application")
Application.StatusBar = "Setting up..."
IE.Visible = False
IE.navigate dataurl

Application.StatusBar = "Calling server..."
Application.Wait (Now + TimeValue("00:00:03"))

    Do Until IE.readyState = 4 
        IE.Refresh2 (3)
        Application.Wait (Now + TimeValue("00:00:05"))
    Loop
   calling = IE.document.body.innerHTML
   
   IE.Quit
  Set IE = Nothing
  
  Application.StatusBar = ""
End Function

我为此尝试了不同的浏览器,但最终 IExplorer 成功了。

excel vba internet-explorer
1个回答
0
投票

发现问题了!我在单元格中形成字符串的文本是“Appl”,当我将其转换为“aapl”(小写)时,Internet Explorer 中的导航命令按预期插入了完整的 URL。

因此,在传递 URL 进行导航时必须注意大小写。

蒂姆感谢您的投入!

© www.soinside.com 2019 - 2024. All rights reserved.