我需要将另一个应用程序指定为对象并进行控制。
通常,我会使用CreateObject()打开应用程序的新实例,但在这个实例中,我需要一个已在Windows资源管理器中打开的对象的现有实例。该对象是Internet Explorer会话,由于各种原因,我无法简单地导航到Office中使用Web浏览器控件。
有没有办法通过窗口句柄或其他东西来抓取这个应用程序会话,以便我可以使用VBA提供的API来控制它?应用程序保留在它所在的页面上并且其整个DOM结构保持不变也很重要。
答案 0 :(得分:1)
在sub中尝试这个,它对我有用
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_url = objShell.Windows(x).Document.Location
my_title = objShell.Windows(x).Document.Title
If my_title Like "The Title You're Looking For" & "*" Then
Set ie = objShell.Windows(x)
Exit For
Else
End If
Next
Now do stuff with this instance of ie