Проверьте доступ к папке Sharepoint / Если папка существует - PullRequest
0 голосов
/ 17 января 2019

Простой макрос для сохранения как базового файла Excel для SharePoint, а затем для выполнения множества других задач. Макрос отлично работает, когда у пользователя есть доступ к указанной папке FLUX PL.

ActiveWorkbook.SaveAs Filename:="https://xxxxcorp.sharepoint.com/sites/CEEControlling/Shared%20Documents/Reporting/FLUX%20Analysis/FLUX%20PL/FLUX%20analysis%20PL%20" & Date & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

Если пользователь не имеет доступа (поэтому он не видит файл), он наполовину сохраняет вместо исходного файла, поэтому он сломан, и мне нужно перейти к предыдущей версии.

Я попытался включить код, чтобы проверить, есть ли у меня доступ / папка существует в SharePoint, но она дает мне

Ошибка времени выполнения '52': неверное имя или номер файла.

mypath = "https://xxxxcorp.sharepoint.com/sites/CEEControlling/Shared%20Documents/Reporting/FLUX%20Analysis/FLUX%20PL"
mypath = Replace(Replace(mypath, "https:", ""), "/", "\")
mypath = Replace(mypath, Split(mypath, "\")(2), Split(mypath, "\")(2) & "@SSL")

If Dir(mypath, vbDirectory) = "" Then
    MsgBox ("Doesnt exist!")
Else:
    MsgBox ("Exists!")
End If

Я тоже думал о On Error Goto [label], но к тому времени, когда он выдает ошибку, файл уже переименован (а исходный сломан). Буду благодарен за любую помощь.

1 Ответ

0 голосов
/ 18 января 2019

Если кому-то это понадобится в будущем, у меня это работает. Я пытаюсь сохранить его, и если он выдает ошибку, я использую On Error GoTo и открываю диалог SaveAs.

    On Error GoTo savior
    ActiveWorkbook.SaveAs Filename:= "https://xxxxcorp.sharepoint.com/sites/CEEControlling/Shared%20Documents/Reporting/FLUX%20Analysis/FLUX%20" & Range("H2").Value & "/FLUX%20analysis%20" & Range("H2").Value & "%20" & Date & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False               
    Application.DisplayAlerts = False
    On Error Goto 0
    GoTo rest
savior:
    MsgBox ("You do NOT have access to the default folder on Teams:" & vbNewLine & "Controlling CEE >> Reporting >> Files >> FLUX Analysis >> FLUX " & Range("H2").Value & vbNewLine & vbNewLine & "Select different location for the new trimmed file!")
    Filename = "FLUX analysis " & Range("H2") & " " & Date
    varResult = Application.GetSaveAsFilename(FileFilter:= _
                "Excel Files (*.xlsx), *.xlsx", Title:="Select File Location", _
                InitialFileName:=Filename)
    If varResult <> False Then
        ActiveWorkbook.SaveAs Filename:=varResult, _
        FileFormat:=xlOpenXMLWorkbook
    Application.DisplayAlerts = False
    End If
    On Error Goto 0
    GoTo rest
rest:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...