-1

我一直在使用 Excel 宏来自动化工作中的 Internet Explorer 进程。我非常接近于弄清楚一切,但最后,宏单击“下载报告”按钮,该按钮会启动一个新窗口。我需要在这个新窗口上启动一些事情,但我不知道如何将宏的焦点更改为新窗口。我在网上找到了一些东西,但都没有成功。我知道有一些方法可以通过告诉 Excel 查找浏览器窗口的名称并激活它来在浏览器窗口之间切换,但是新窗口的部分名称不断变化(它是该特定窗口的唯一 URL) .

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

提前感谢您的帮助

4

2 回答 2

0

您正在寻找 VBA AppActivate 命令吗?

于 2012-12-24T14:11:41.273 回答
0

您将需要添加对 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
于 2012-12-24T16:34:28.670 回答