确定用户是否有 OneDrive 并相应地更改文件路径

Identify if user has OneDrive and change file path accordingly

我有以下 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

这可以使用 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

为了您的信息,我从 this URL 获得了这段代码。