Excel VBA Up- / Download из нескольких папок SharePoint
В Интернете я нашел пример кода для загрузки файлов из папки SharePoint с помощью VBA (откройте в проводнике, сопоставьте букву диска и т. Д.)
Поэтому я написал следующий код:
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)
На этом этапе я могу загрузить файлы в папку:
https://spFolder/Sector Reports/
Однако я также хочу загрузить файлы в папку, например:
https://spFolder/Documents/
и я также удалил предыдущую букву диска, используя функцию:
removeDriveLetter "Letter"
Теперь у меня проблема, что если я сопоставлю новую папку с буквой:
mapDriveLetter "A:\", sharepointFolder
и хотите сохранить что-то на этом письме, оно всегда будет сохранено на предыдущем пути. Например:
mapDriveLetter "A:\", sharePointFolder1
removeDriveLetter "A:\"
mapDriveLetter "A:\", sharePointFolder2
workbook.saveas "A:\" & workbookName
В этом случае рабочая книга всегда сохраняется по пути, указанному в «sharePointFolder1», а не в «sharePointFolder2».