点击下载按钮后,出现如下弹窗,使用application.sendkeys "%s"不好用,有哪位大咖解决一下
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的下载操作。