将现有流程分配给对象变量?

时间:2013-12-13 17:20:01

标签: excel vba excel-vba access-vba

我需要将另一个应用程序指定为对象并进行控制。

通常,我会使用CreateObject()打开应用程序的新实例,但在这个实例中,我需要一个已在Windows资源管理器中打开的对象的现有实例。该对象是Internet Explorer会话,由于各种原因,我无法简单地导航到Office中使用Web浏览器控件。

有没有办法通过窗口句柄或其他东西来抓取这个应用程序会话,以便我可以使用VBA提供的API来控制它?应用程序保留在它所在的页面上并且其整个DOM结构保持不变也很重要。

1 个答案:

答案 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