Excel 如何在“打开/保存/取消”对话框中单击“打开”-IE和VBA

Excel 如何在“打开/保存/取消”对话框中单击“打开”-IE和VBA,excel,vba,ms-access,internet-explorer,web-scraping,Excel,Vba,Ms Access,Internet Explorer,Web Scraping,我正试图从我公司的网站下载一份报告以供报告之用 Application.SendKeys "%{O}", True newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 10 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime SendKeys "{TAB}", True SendKe

我正试图从我公司的网站下载一份报告以供报告之用

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
步骤如下:

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
信息抽取 转到下载链接 点击提取按钮 单击IE对话框Save/open/cancel box上的open按钮 将数据复制到活动工作簿的第1页 接近IE 我一直到第三步。我在步骤4中遇到问题。我尝试了以下解决方案,但它们对我不起作用

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
使用的代码:

Sub ExtractGLfile()

    Set ie = New InternetExplorerMedium
    Dim DLCPortalGL As String
    DLCPortalGL = "link"
    ie.Visible = True
    ie.navigate (DLCPortalGL)

    Do
        DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE

    ie.document.getElementById("ButtonID").Click
    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
我需要有关步骤4的帮助-单击打开/保存/取消按钮的打开

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
更新:我可以使用下面的代码下载该文件

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True
但是,当文件打开时,我发现错误:
有什么建议吗?

如果您只是想下载一个页面或文件,您可以使用此快速功能下载文件:

    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True

可以找到完整的故事,以及关于缓存与否的故事。

目前无法回答您的问题。你需要加入一个@QHarr,谢谢你的反馈。我为前面的问题道歉。谢谢你好,谢谢你的回复。使用我前面描述的代码片段工具查看相关的HTML会有帮助,并且您可以详细说明什么是不工作的意思?您的单击正在工作,文件已下载,但现在无法按“另存为/打开”对话框?当你说在sheet1中打开时…你想把数据传输到sheet1吗?您正在下载的文档是否只有一页?你打算用这些数据做什么?“它会去哪里?”他说。是,单击正在工作,无法按活动工作簿工作表1中的“保存/打开”选项卡。是的,我想为我的报告传输表1中的数据。这些数据是我的报告的输入。有许多问题和答案,用于使用IE点击saveas/open对话框parti。看看这些问题和答案。如果您可以找到与下载相关联的URL,那么下面的答案是直接下载的一种方法。然后,您将目标文件打开。我无法使用url下载,因为我需要单击“下载”按钮。我需要点击一个提取按钮。是的,但是检查按钮运行的代码。它可能只是指向excel文件的链接。或者在这里显示URL供我们使用。因此,我添加了下面的代码,它成功了。Application.SendKeys%{O},True newHour=HourNow newMinute=MinuteNow newSecond=SecondNow+10 waitTime=timeserialnewwhour,newMinute,newSecond应用程序。Wait waitTime SendKeys{TAB},True SendKeys{ENTER},TrueOK。但没有应用程序。请在Access VBA中等待。
    Application.SendKeys "%{O}", True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

SendKeys "{TAB}", True
SendKeys "{ENTER}", True