![](/img/trans.png)
[英]Open picture via VBA ( Excel) from web without Internet Explorer
[英]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
这是做恕我直言的最安全的方法,而且你有机会将变量Set
为Nothing
,这也是一种安全的解除分配方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.