Определите, есть ли у пользователя OneDrive, и соответственно измените путь к файлу. - PullRequest
0 голосов
/ 29 января 2020

У меня есть следующее VBAs, чтобы сохранить книгу Excel на рабочем столе пользователя.
Первый используется, если у пользователя нет OneDrive.
Второй используется, если у пользователя есть OneDrive.

Sub Without_OneDrive()
ActiveWorkbook.SaveCopyAs "C:\Users\firstname.lastname\Desktop\Test.xlsm"
End Sub

Sub With_OneDrive()
ActiveWorkbook.SaveCopyAs "C:\Users\firstname.lastname\OneDrive - limango.com\Desktop\Test.xlsm"
End Sub

Все это прекрасно работает.


Однако, теперь у меня есть ситуация, что некоторые пользователи имеют OneDrive а другие нет.
Поэтому мне интересно, есть ли решение, чтобы определить, есть ли у пользователя OneDrive или нет, и затем решить, какой file path следует использовать. Примерно так:

Sub SaveWorkbook()
If OneDrive exist then
ActiveWorkbook.SaveCopyAs "C:\Users\firstname.lastname\OneDrive - limango.com\Desktop\Test.xlsm"
Else
ActiveWorkbook.SaveCopyAs "C:\Users\firstname.lastname\Desktop\Test.xlsm"
End If
End Sub

1 Ответ

0 голосов
/ 29 января 2020

Это можно сделать, используя функцию Dir VBA, как вы можете видеть в следующем фрагменте исходного кода:

Public Function DirExists() as Boolean

Dim DirName As String

    DirName = VBA.FileSystem.Dir("C:\Users\firstname.lastname\OneDrive - limango.com", vbDirectory)

    If DirName = VBA.Constants.vbNullString Then
        DirExists = False
    Else
        DirExists = True
    End If

End Sub

Для вашей информации, я получил этот фрагмент кода от этот URL .

...