Как обновить несколько файлов Excel (.xlsx), хранящихся на клиентском SharePoint, с помощью макроса VBA - PullRequest
0 голосов
/ 11 февраля 2020

Пожалуйста, рассмотрите код ниже. Там откройте topi c здесь -> «Открыть файлы Excel Sharepoint с VBA». С некоторыми советами. Моё техническое задание: 1) Открыть файл, 2) Обновить все ссылки. 3) Сохранить и закрыть файл 4) Следующий файл Код ошибки арендатора введите описание изображения здесь Может кто-нибудь исправить меня в моем коде, пожалуйста?

Sub update_files()
    Dim FolderPath As String
    Dim wb_master As Workbook
    Dim ws_master As Worksheet
    Dim StrFile As String
    Dim TempPath As String
    Dim source_wb As Workbook

    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.AskToUpdateLinks = False

    If wb_master Is Nothing Then Set wb_master = ThisWorkbook
    If ws_master Is Nothing Then Set ws_master = ThisWorkbook.Sheets("setup")

    FolderPath = ws_master.Range("A5") 'cell "A5" = https://customer_name.sharepoint.com/teams/BG003C9/FY20/08/Actuals/01/Preliminary/Actuals/

    'customer_name
    TempPath = Replace(Replace(FolderPath, "https://customer_name.sharepoint.com", "\\customer_name.sharepoint.com@SSL\DavWWWRoot\"), "/", "\")

    If ws_master.AutoFilterMode = True Then ws_master.AutoFilterMode = False
        SourceRow = 5
                    Do While Cells(SourceRow, "B").Value <> "" 'cell B5 ... Bn+1 until cell = "", stored file name on customer SharePoint
                        StrFile = ws_master.Range("B" & SourceRow).Value

                            source_file = TempPath & StrFile & ".xlsx"
                            Set source_wb = Workbooks.Open(source_file)
                                source_wb.LockServerFile 'locke file on server for next changes
                                source_wb.Activate 'active opend file
                                source_wb.UpdateLink Name:=ActiveWorkbook.LinkSources 'update all links
                                source_wb.Save 'save workbook
                                source_wb.Close 'close workbook
                            SourceRow = SourceRow + 1 ' Move down 1 row for source sheet
                        Loop
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...