Excel 如何使用VBA从SharePoint下载文件?
我正在尝试使用VBA从SharePoint下载文件 该文件是一张图片,但一旦进入系统,该图片就无法查看 我想我下载的格式不对Excel 如何使用VBA从SharePoint下载文件?,excel,vba,sharepoint,Excel,Vba,Sharepoint,我正在尝试使用VBA从SharePoint下载文件 该文件是一张图片,但一旦进入系统,该图片就无法查看 我想我下载的格式不对 Sub DownloadFromSharepoint() Dim myURL As String myURL = "https://MYSHAREPOINTSITE" Dim WinHttpReq As Object Set WinHttpReq = CreateObject("Microsoft.XMLHT
Sub DownloadFromSharepoint()
Dim myURL As String
myURL = "https://MYSHAREPOINTSITE"
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody
oStream.SaveToFile ("C:\Users\DOMAIN\temp.jpg")
oStream.Close
End If
End Sub
以下是我当前用于从Sharepoint网站下载文件的包装器代码:
Private 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
Function DownloadFileFromWeb(strURL As String, strSavePath As String) As Long
' strSavePath includes filename
DownloadFileFromWeb = URLDownloadToFile(0, strURL, strSavePath, 0, 0)
End Function
如果下载成功,DownloadFileFromWeb函数将返回0。以下是我当前用于从Sharepoint网站下载文件的包装器代码:
Private 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
Function DownloadFileFromWeb(strURL As String, strSavePath As String) As Long
' strSavePath includes filename
DownloadFileFromWeb = URLDownloadToFile(0, strURL, strSavePath, 0, 0)
End Function
如果下载成功,DownloadFileFromWeb函数将返回0。您可以将sharepoint网站映射到网络驱动器,然后使用FileCopy方法。可能容易多了。你有myURL中图像的完整路径吗?另外,行myURL=WinHttpReq.ResponseBody对我来说毫无意义。我同意@ScottHoltzman的观点。那就是我要做的。另一种方法是使用UrlDownloadToFile api。请参阅:您可以将sharepoint网站映射到网络驱动器,然后使用FileCopy方法。可能容易多了。你有myURL中图像的完整路径吗?另外,行myURL=WinHttpReq.ResponseBody对我来说毫无意义。我同意@ScottHoltzman的观点。那就是我要做的。另一种方法是使用UrlDownloadToFile api。看:这太棒了!非常感谢你!为什么要使用别名URLDownloadToFileA?Alias子句用于指示定义的函数在其dll中有另一个名称,在本例中为“urlmon.dll”。不用说,但是如果你在sharepoint上使用Get链接,它会在直接文件URL中包含很多其他内容。您可能需要删除.xlsx之后的所有内容才能正确下载。这太棒了!非常感谢你!为什么要使用别名URLDownloadToFileA?Alias子句用于指示定义的函数在其dll中有另一个名称,在本例中为“urlmon.dll”。不用说,但是如果你在sharepoint上使用Get链接,它会在直接文件URL中包含很多其他内容。您可能必须删除.xlsx之后的所有内容才能正确下载。