Vba 控制打开的浏览器实例

Vba 控制打开的浏览器实例,vba,vbscript,Vba,Vbscript,创建新的浏览器实例后,如何引用该实例,而不是关闭并重新打开,比如如果我激活Excel窗口,然后我想激活回浏览器,这是如何完成的 我调查 Set Browser = New SHDocVw.InternetExplorer 但是如果我打开了不止一个窗口,那就不行了,我不认为我想你的意思是: AppActivate "Windows Internet Explorer" 换句话说,在模块级别声明浏览器变量,使其保持可用 您还可以捕获这样的实例: Option Explicit Public b

创建新的浏览器实例后,如何引用该实例,而不是关闭并重新打开,比如如果我激活Excel窗口,然后我想激活回浏览器,这是如何完成的

我调查

Set Browser = New SHDocVw.InternetExplorer 
但是如果我打开了不止一个窗口,那就不行了,我不认为我想你的意思是:

AppActivate "Windows Internet Explorer"
换句话说,在模块级别声明浏览器变量,使其保持可用

您还可以捕获这样的实例:

Option Explicit
Public browser As SHDocVw.InternetExplorer

Sub NavigateTo()

   Set browser = New SHDocVw.InternetExplorer

   browser.Visible = True
   browser.Navigate "http://stackoverflow.com"

End Sub

我当前的工作流程是:1)浏览器打开并进行身份验证2)自动从Excel中提取指定的数据变量3)浏览器关闭并返回Excel,但如果我希望它自动处理更多数据,而不是每次都进行身份验证,该怎么办?我只想激活浏览器并在它停止的地方使用它,我该怎么做?如果我提取一行数据并对其进行处理,我希望返回excel,让excel询问是否需要处理更多数据,然后使用仍然打开的当前实例进行处理。。希望我澄清一下,您可以使用上面的任何一个示例,但第一个示例可能最适合,即在模块级别声明变量。
工作簿(“test.xlsm”)。激活
浏览器。如果没有类似上面的示例,则激活
,以便返回excel,然后再次返回浏览器?或者我只是随便打电话给浏览器?为什么你需要返回Excel?代码是否未在Excel中运行?如果是,您还没有离开Excel。我从A列中选择一个数字,无论该数字是哪一行,将整行内容拉入变量,使用这些变量在webform上自动输入数据。然后我想回到excel,让它在关闭浏览器之前询问是否需要输入更多内容。否则,它每次都会登录,我不想每天登录100次。我想另一种方法是,通过身份验证循环,然后问我在飞行中需要什么号码。你的想法是什么?我的弱点在哪里?
Sub getIE()
Dim sh As Object, oWin As Object, IE As Object

    Set sh = CreateObject("Shell.Application")

    For Each oWin In sh.Windows
        If TypeName(oWin.Document) = "HTMLDocument" Then
            Set IE = oWin
            Exit For
        End If
    Next

    Debug.Print IE.Document.url
End Sub