VBA如何操控IE下载弹窗

点击下载按钮后,出现如下弹窗,使用application.sendkeys "%s"不好用,有哪位大咖解决一下

img



Dim hwnd As Long

' 查找下载弹窗iframe窗口句柄
For Each iframe In IE.Document.getElementsByTagName("iframe")
    If InStr(iframe.src, "download") > 0 Then
        hwnd = iframe.contentWindow.hwnd
        Exit For
    End If
Next

' 发送键盘事件通过TAB选择保存按钮,回车确认
If hwnd Then
    AppActivate hwnd   ' 激活窗口
    SendKeys "%{TAB}"  ' TAB键选择保存按钮
    SendKeys "%{ENTER}" ' 回车确认
End If  

' 或者直接使用Win32 API操作窗口控件
If hwnd Then
    Dim btn_save As Long
    btn_save = FindWindowEx(hwnd, 0, "Button", "保存")    ' 查找保存按钮句柄
    ClickButton btn_save                                ' 点击保存按钮
End I

上述代码先查找下载相关iframe的窗口句柄hwnd,然后通过发送键盘事件的方法选择保存按钮并确认。或者直接使用Win32 API查找保存按钮控件句柄,进行点击操作。
这样,我们就可以通过VBA完全控制IE浏览器的下载弹窗,选择保存路径或打开/保存文件。让VBA自动完成IE的下载操作。