【发布时间】:2015-03-30 22:04:55
【问题描述】:
正在努力寻找解决方案。 从 Visual Basic(更具体地说是 Excel 中的 VBA)我可以使用标题调用 Internet Explorer 窗口
AppActivate ("My Page Title - Windows Internet Explorer")
而且每次都很好用。
我可以打开一个新窗口并使用..向它发送一个网址。
Dim ie As Object
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://websiteurl"
这也可以 但它每次都会打开一个新浏览器,我希望它总是调用同一个窗口。
所以我可以将ie 设置为每次都等于同一页面。所以而不是
Set ie = New InternetExplorer
它做了类似的事情
Set ie = ACTIVE InternetExplorer
(虽然这似乎不存在)。
有没有办法将ie 设置为与AppActivate ("My Page Title - Internet Explorer") 相同?
谢谢
完整代码在这里:
Sub Find_Recordings()
Dim MyAppID, ReturnValue
AppActivate ("My Page Title - Windows Internet Explorer")
SendKeys ("^a")
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys ("^c")
Application.Wait (Now + TimeValue("0:00:01"))
AppActivate ("Microsoft Excel")
Sheets("DataSearcher").Select
Range("K1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon: = False
Range("A1").Select
Dim ie As Object
Set ie = New InternetExplorer
ie.Visible = True ie.Navigate "http://wwwmyurl"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
ie.Document.getElementById("searchdata1").Value = Range("J1")
ie.Document.getElementById("library").Value = "RECORDINGS"
ie.Document.searchform.Submit
End Sub
【问题讨论】:
-
您可以使用 MSXML 对象直接发布到网站并完全跳过自动化 - 这会快得多
-
我对此并不熟悉。这是前端还是后端?恐怕我仅限于前端。只希望宏复制用户可以手动执行的操作,但速度更快。干杯
-
它是前端,我在这里发布了一个如何做到这一点的示例stackoverflow.com/questions/9486847/…您可以发布您的实际站点的网址吗?
-
其实是一个内网站点。会看你的链接,谢谢
-
我已经尝试过@Kyle 的想法来解决我自己遇到的另一个问题。它不适用于我的具体问题,但我确实使用它来掌握它,这是一个很好的解决方案。
标签: internet-explorer vba excel shdocvw