Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用VBA切换Internet Explorer窗口_Windows_Internet Explorer_Excel_Automation_Vba - Fatal编程技术网

Windows 使用VBA切换Internet Explorer窗口

Windows 使用VBA切换Internet Explorer窗口,windows,internet-explorer,excel,automation,vba,Windows,Internet Explorer,Excel,Automation,Vba,我一直在使用Excel宏来自动执行Internet Explorer的工作流程。我很快就能搞清一切,但最后,宏点击了“下载报告”按钮,启动了一个新窗口。我需要在这个新窗口上启动一些操作,但我不知道如何将宏的焦点更改为新窗口。我在网上找到了一些东西,但都不成功。我知道,通过告诉Excel查找浏览器窗口的名称并激活它,可以在浏览器窗口之间切换,但新窗口的部分名称不断变化(这是该特定窗口的唯一URL) 我想知道是否有办法让宏只查找窗口的前九个字母并切换到该窗口?类似于excel中的左函数?原因是URL

我一直在使用Excel宏来自动执行Internet Explorer的工作流程。我很快就能搞清一切,但最后,宏点击了“下载报告”按钮,启动了一个新窗口。我需要在这个新窗口上启动一些操作,但我不知道如何将宏的焦点更改为新窗口。我在网上找到了一些东西,但都不成功。我知道,通过告诉Excel查找浏览器窗口的名称并激活它,可以在浏览器窗口之间切换,但新窗口的部分名称不断变化(这是该特定窗口的唯一URL)

我想知道是否有办法让宏只查找窗口的前九个字母并切换到该窗口?类似于excel中的左函数?原因是URL的前9个字符从未更改。原始窗口的名称(我正在尝试切换的窗口)永远不会更改,因此我可以告诉Excel在浏览器窗口中查找未命名为原始窗口的窗口吗?还有其他想法吗


提前感谢您的帮助

您需要的是VBA AppActivate命令吗?

您需要添加对Internet控件和shell的引用。你只需要在IE窗口中循环并查看url的左侧。见下文

Function GetInternetWindow(urlToLookFor as String) As InternetExplorer

Dim winShell As Shell
Dim ie As InternetExplorer

Set winShell = New Shell
'loop through the windows and look at the urls
For Each ie In winShell.Windows
    If Left(ie.LocationURL, 9) = urlToLookFor Then        
        GetInternetWindow = ie
        Exit For
    End If
Next
End Function

您也可以在
VBA
中使用
LEFT
。请提供您的代码副本,以便我们查看您的位置。如果您创建InternetExplorer对象,您可以直接控制web浏览器。这可能是一个非常愚蠢的问题,但我对VBA不熟悉。如果我想在我的另一个宏进程中包含这个函数,我该怎么做?我是否将函数放在其他代码下面,然后调用它?