我有一个问题,关于这个主题,已经在其他一些帖子和论坛上讨论过了,但我没有办法让它为我工作。所以我来到这里是想问一下关于我个人代码的问题。
基本上,我访问了一个内部网站,并根据一些输入(通过复选框)创建了一个带有SAP数据的报告。
我的问题出现在报表生成后,IE提示我按对话框中的 "保存 "按钮。我无法实现这部分的自动化。
你能帮助我吗?我想将报告存储在 "下载 "文件夹中。
你会发现我的代码在下面.由于合规的原因,我不能显示原始的URL。
任何帮助是广泛感激。
最好的西蒙
Dim ie As InternetExplorer
Dim html As HTMLDocument
Dim i As Integer
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.navigate "https://blablablablablabla"
Application.Wait (Now + TimeValue("00:00:03"))
Set html = ie.document
html.getElementById("ctl00_MainContent_RadCboRepFilter1_Arrow").Click
Application.Wait (Now + TimeValue("00:00:01"))
html.getElementsByClassName("rcbList")(0).Children(5).Click
Application.Wait (Now + TimeValue("00:00:01"))
html.getElementById("ctl00_MainContent_RadCboRepFilter2_Arrow").Click
Application.Wait (Now + TimeValue("00:00:01"))
html.getElementsByClassName("rcbList")(0).Children(0).Click
Application.Wait (Now + TimeValue("00:00:01"))
html.getElementById("ctl00_MainContent_RadCboListOppStatus_ctl01").Click
html.getElementById("ctl00_MainContent_RadCboListOppStatus_ctl02").Click
html.getElementById("ctl00_MainContent_RadcboListSalesStage_ctl00").Click
html.getElementById("ctl00_MainContent_RadcboListSalesStage_ctl01").Click
html.getElementById("ctl00_MainContent_RadcboListSalesStage_ctl02").Click
Application.Wait (Now + TimeValue("00:00:01"))
html.getElementById("MainContent_BtnRunReport").Click
End Sub
一般情况下,当从IE浏览器下载文件时,会显示一个提示,让用户点击保存按钮,我们可以使用Application.SendKeys"%{s}"命令在VBA中点击保存按钮。
示例代码如下。
Sub Test()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate "<the website url>"
While IE.ReadyState <> 4
DoEvents
Wend
'click the button to download the file.
IE.Document.getElementbyId("btnDowloadReport").Click
'wait the download prompt appear
Application.Wait (Now + TimeValue("00:00:03"))
Application.SendKeys "%{s}"
'Waiting for the site to load.
End With
Set IE = Nothing
End Sub
Html页面资源。
<a id="btnDowloadReport" href="https://research.google.com/pubs/archive/44678.pdf" download>Download</a>
注意】请检查你的IE浏览器设置,确保下载路径是 "Downloads "文件夹。