Excel VBA - URLDownloadToFile - 下载文件中缺少数据

时间:2014-07-07 14:41:25

标签: excel-vba vba excel

我使用以下代码从网址下载excel文件。 URL(我在这里不能分享)是一个票务系统。我使用网站上的搜索按钮来获取所有打开和进行中的门票。之后有一个导出下拉按钮,从下拉列表我选择了Excel。我使用的网址是代码是此导出到Excel按钮的网址。

代码将excel文件导出到给定路径,但只有页眉和页脚数据显示下载时间,两行说"显示0问题于07 / Jul / 14 3:14 PM&#34。和#34;没有发现问题"。在文件中。

如果我直接在任何网站上使用该网址,它会打开包含数据的文件。如果我使用Workbooks.open" myUrl"相同的空白文件正在打开。

有人可以检查一下是什么问题吗?

Sub downloadFile()

Test = Dir("C:\Users\" & Environ("username") & "\" & "SearchResult.xls")
If Not Test = "" Then
    Kill ("C:\Users\" & Environ("username") & "\" & "SearchResult.xls")
 End If

 mylink = ""
 myresult = 0

mylink = "http://mylink.com/issueviews:SearchResult-excel-all-fields/temp/SearchResult.xls?jqlQuery=status+in+%28Open%2C+%22In+Progress%22%29&tempMax=1000"
myresult = URLDownloadToFile(0, mylink, "C:\Users\" & Environ("username") & "\" & "SearchResult.xls", 0, 0)

 If myresult <> 0 Then
    MsgBox "Error downloading " & mylink & Chr(10) & Error(myresult)
 Else
    MsgBox "File has been downloaded"
 End If
End Sub

1 个答案:

答案 0 :(得分:0)

您提供的数据中没有足够的信息。

基本上,当您手动使用IE时以及运行代码时,在(在HTTP协议查询/响应级别上)发生的情况之间存在一些差异。

典型的事情是重定向状态代码(请参阅http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection)和缺少身份验证标头(请参阅http://en.wikipedia.org/wiki/HTTP_header

如果您无法安装工具(例如cURL),则很难猜测,因为我不知道您可以使用哪种工具。

网络浏览器内置了一些网络诊断工具(在Internet Explorer中按F12,在Google Chrome中按Ctrl + Shift + I)

(评论后编辑)您可以使用浏览器内置的网络标签找到在网络浏​​览器和网络服务器之间交换的http请求/响应的确切顺序。在开发人员工具中。

一旦你知道什么是正确的消息序列,尝试使用cURL重现它。

一旦成功,您可以尝试使用具有类似含义的Excel VBA函数重现序列,或者您可以从Excel中调用cURL命令行工具,如下所述:Execute a command in command prompt using excel VBA(或在其中一些链接或相关问题)