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

Excel 确定用户是否有OneDrive并相应地更改文件路径,excel,vba,windows-10,office365,onedrive,Excel,Vba,Windows 10,Office365,Onedrive,我使用以下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.lastnam

我使用以下
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
,然后决定应该使用哪个
文件路径
。大概是这样的:

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

供您参考,我从中获得了这段代码。

我在我的计算机上进行了尝试。我确实有OneDrive,所以路径必须存在,但代码找不到它。@Michi:你说得对:我忘了放
,vbDirectory
。我已经修改了我的代码,现在应该可以工作了。