如何在 Excel 宏中使用 VBA 将文件从 Sharepoint 下载到本地驱动器

问题描述 投票:0回答:1

我正在尝试在 Excel 宏中使用 VBA 下载共享点文件。我从该网站复制了一些代码,但它不起作用。它下载了一个文件,但该文件无法正确打开。正确的文件是 28KB,但它下载的文件只有 4KB。尝试打开时会出现错误消息,指出文件格式或扩展名无效。验证文件未损坏。该文件手动下载并打开没有问题,但代码不起作用。任何帮助将不胜感激。

https://sandvik.sharepoint.com/team/PUMebaneDataHub/Shared%20Documents/Forms/Allitems.aspx

上面是文件所在的 URL。该文件是: 梅宾事故登记表.xlsx

这是从 Sharepoint 实际复制的链接 https://sandvik.sharepoint.com/:x:/r/teams/PUMebaneDataHub/Shared%20Documents/Mebane%20Incident%20Intake%20Form.xlsx?d=w8031d09838fe4673854fa5241b259fca&csf=1&web=1&e=ty1IRb

这是我的VBA代码。

Option Explicit
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 

Sub DownloadFileFromWeb()
    Dim i As Integer
    Const strUrl As String = "https://sandvik.sharepoint.com/teams/PUMebaneDataHub/Shared%20Documents/Mebane Incident Intake Form.xlsx"
    Dim strSavePath As String 
    Dim returnValue As Long 
    strSavePath = "C:\temp1\Mebane Incident Intake Form.xlsx"
    returnValue = URLDownloadToFile(0, strUrl, strSavePath, 0, 0) 
End Sub 

见上文...我原以为它会下载该文件...但它下载了一个无法打开的垃圾文件。

excel vba file sharepoint download
1个回答
0
投票

最简单的方法:

Dim wb as workbook
Set wb = workbooks.open(UrlToWorkbook)
wb.saveas savePathHere
© www.soinside.com 2019 - 2024. All rights reserved.