首页 > 解决方案 > 确定用户是否有 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.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

标签: excelvbawindows-10office365onedrive

解决方案


这可以使用DirVBA 函数来完成,您可以在以下源代码摘录中看到:

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获得了这段代码。


推荐阅读