首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA Up-/从多个SharePoint文件夹下载

Excel VBA Up-/从多个SharePoint文件夹下载
EN

Stack Overflow用户
提问于 2015-06-19 07:22:09
回答 1查看 9.5K关注 0票数 1

我在互联网上找到了使用VBA从SharePoint文件夹下载文件的示例代码(在资源管理器中打开,映射到驱动器号等)

因此,我编写了以下代码:

代码语言:javascript
复制
Dim sharepointFolder As String
Dim colDisks As Variant
Dim objWMIService As Object
Dim objDisk As Variant
Dim driveLetter As String

'Create FSO and network object
Set objNet = CreateObject("WScript.Network")
Set fs = CreateObject("Scripting.FileSystemObject")

'Get all used Drive-Letters
Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")

'Loop through used Drive-Letters
For Each objDisk In colDisks
    For i = 65 To 90
        'If letter is in use exit loop and remember letter.
        If i = Asc(objDisk.DeviceID) Then
            j = i
            Exit For
        'letters which are not checked yet are possible only
        ElseIf i > j Then
            driveLetter = Chr(i) & ":"
            Exit For
        End If
    Next i
    'If a Drive-Letter is found exit the loop
    If driveLetter <> "" Then
        Exit For
    End If
Next

'define path to SharePoint
sharepointFolder = "https://spFolder/Sector Reports/"
'Map the sharePoint folder to the free Drive-Letter
objNet.MapNetworkDrive driveLetter, sharepointFolder
'set the folder to the mapped SharePoint-Path
Set folder = fs.GetFolder(driveLetter)

在这个阶段,我可以将文件上传到文件夹:

代码语言:javascript
复制
https://spFolder/Sector Reports/

但是,我也想将文件上传到文件夹中,例如:

代码语言:javascript
复制
https://spFolder/Documents/

我还使用下面的函数删除了前面的驱动器号:

代码语言:javascript
复制
removeDriveLetter "Letter" 

现在我遇到了一个问题,如果我将一个新文件夹映射到一个字母:

代码语言:javascript
复制
mapDriveLetter "A:\", sharepointFolder

并且想要在这封信上保存一些东西,它将始终保存在以前的路径上。例如:

代码语言:javascript
复制
mapDriveLetter "A:\", sharePointFolder1
removeDriveLetter "A:\"
mapDriveLetter "A:\", sharePointFolder2
workbook.saveas "A:\" & workbookName

在这种情况下,工作簿始终保存到"sharePointFolder1“中指定的路径,而不是"sharePointFolder2”中的路径。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-29 13:43:08

我解决这个问题的方法如下:

在将包含所请求文件的每个文件夹连接到网络驱动器号的情况下,我将所有文件夹放入相同的库中,并仅将库的根文件夹连接到网络驱动器号。

在分别使用connection https://spFolder/Sector Reports/https://spFolder/Documents/的情况下,我将只连接https://spFolder/,并使用文件系统对象浏览子目录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30927462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档