繁体   English   中英

SendKeys从Internet Explorer打开Excel文件

[英]SendKeys to open Excel file from Internet Explorer

下载会跳过宏的其余部分。

目前我有一个子程序,用于进入网页并下载文件。 它打开了一个栏,询问“打开,保存,另存为”我使用发送键%O打开文件。 文件打开后,我想使用另一个代码来播放文档,问题是文件只在宏的其余部分完成后打开。 它出于某种原因只是基本上跳过了我的其余部分。

这是我正在做的一个例子:

Sub iaspull()

    Set ie = CreateObject("InternetExplorer.Application")
    my_url = "***"
    With ie
        .Visible = True
        .navigate my_url
        Do Until Not ie.Busy And ie.readyState = 4
            DoEvents
        Loop
        ' Some code to get to the file and click download
    End With

    Application.Wait (Now + TimeValue("00:00:08"))
    Application.SendKeys "%{O}", True
    DoEvents

End Sub

Sub enable_edit()
    Application.ActiveProtectedViewWindow.Edit
End Sub

一旦代码到达.SendKeys "%{O}"它就可以打开,但如果有更多代码,那么它就会跳过代码。

我希望能够一个接一个地运行这两个子程序。 我宁愿不保存或使用保存功能来保持这种通用性。

请让我知道你的想法!

我想如果你使用SendKeys ,你基本上不会对应用程序说它必须是Visible 我不确定应用程序是否未加载或只是不可见 ,但是(归功于@omegastripes)知道这是一个用Excel打开的文件,我也写了类似的东西:

Dim DownloadedFileFilename As String ' you save here your downloaded file name
Dim EA As Excel.Application
Dim DownloadedFile As Workbook

Set EA = New Excel.Application
With EA
    .Visible = True ' Just to make sure
    .ScreenUpdating = True  ' Just to make sure
    Set DownloadedFile = .Workbooks.Open(Filename:=DownloadedFileFilename), ReadOnly:=True)
    ' [DO STUFF]
End With

这是做恕我直言的最安全的方法,而且你有机会将变量SetNothing ,这也是一种安全的解除分配方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM