VBA代码会打开带有打开或保存选项的对话框,但我被卡在那里

时间:2015-10-01 15:59:52

标签: excel vba internet-explorer download

首先发帖在这里对我好。我正在尝试从网站下载excel文件。该网站有一个按钮,可以按下该按钮下载excel文件。我查看了代码,并且能够提出一个网址,如果进入IE浏览器,我会直接下载"打开/保存"对话框。然后我在excel中的vba中使用了该url,用于打开要求打开或保存文件的下载框。

我希望每次都将文件保存为相同的名称,因为我要使用另一个查看数据并返回结果的工作簿。

我知道这个问题已经被问了一百万次,因为我已经搜索过,但是我尝试过的代码都没有用。

这是我目前的代码

Sub TESTING()
'Need to reference to Microsoft Internet Controls
Dim URL As String
'URL = Worksheets("References & Resources").Range("URLMSL")
URL = "http://cts/Tacs/OperationDrillExport/76"
Dim IE As Object
Set IE = CreateObject("internetexplorer.application")
 IE.Visible = True
 IE.Navigate URL
Do While IE.ReadyState <> 4
DoEvents
Loop

End Sub

该网站是一个内部网站,所以它不会从外部工作,但我认为代码是相同的方式。

2 个答案:

答案 0 :(得分:1)

对不起,我的代表不够高,不能发表评论,所以这不是答案;这是一个问题/建议......我想询问你是否试图让程序自动下载文件,或者是否被卡住了#34;你是说用打开/保存按钮打开的对话框不允许你继续;即,您实际上无法点击打开/保存按钮? 我问的原因是,我想如果url总是相同的,只需通过vba下载文件而不使用对话框就会更有效。

您可以在此处找到一些答案:How do i download a file using VBA (Without internet explorer)

答案 1 :(得分:0)

所以我继续捣乱这个,现在我非常接近。我完全走了一个不同的方向,现在我可以像我想要的那样保存文件。问题是它只能在代码末尾使用MsgBox命令,并且我不想显示消息框,因为我不希望用户必须单击确定。如果我删除此代码,它将无法保存文件。

Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
 (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Sub Example()
 DownloadFile$ = "file.xlsx"
 URL$ = "http://cts/Tacs/OperationDrillexport/76234"
 LocalFilename$ = "C:\Users\q6bxh0\Documents\downloads\" & DownloadFile

 MsgBox URLDownloadToFile(0, URL, LocalFilename, 0, 0) = 0


End Sub

太令人沮丧了。该文件在我甚至单击确定之前保存,因此它只是关于该命令的一些内容,允许它在删除时保存该命令。我是如此新鲜,它可能是如此简单但没有MsgBox命令它根本不会保存。可能只需要一个不同的命令,但我无法弄清楚。

所以现在它可以工作,但我只需要弄清楚如何自动关闭MsgBox,根据我所读到的,你可以做或者我需要一个不同的命令来做我发生的每一个发生的事情MSGBOX。