ThisWorkbook.FullName 在与 OneDrive 同步后返回 URL。我想要磁盘上的文件路径

作者:编程家 分类: vba 时间:2025-07-28

根据 ThisWorkbook.FullName 返回 OneDrive URL 的需求是一个非常实用的功能。通过这个功能,我们可以轻松地获取到与 OneDrive 同步后的文件在云端的地址,方便我们与他人分享文件或者进行其他操作。

在使用这个功能之前,我们首先需要了解一下 ThisWorkbook.FullName 的含义。ThisWorkbook 是 Excel VBA 中的一个对象,代表着当前活动工作簿。FullName 是 ThisWorkbook 对象的一个属性,表示当前工作簿的完整路径和文件名。这个路径可以是本地磁盘上的路径,也可以是与 OneDrive 同步后的云端路径。

我们可以通过以下代码来获取 ThisWorkbook.FullName 的值:

vba

Dim filePath As String

filePath = ThisWorkbook.FullName

接下来,我们需要判断这个路径是本地路径还是云端路径。如果是本地路径,我们可以直接使用它进行相关操作。如果是云端路径,我们需要将它转换成 OneDrive URL。

下面是一个示例代码,用于将本地路径转换成 OneDrive URL:

vba

Dim filePath As String

Dim oneDriveURL As String

filePath = ThisWorkbook.FullName

If InStr(filePath, "OneDrive") > 0 Then

' 如果路径中包含 "OneDrive",则表示是云端路径

oneDriveURL = Replace(filePath, "C:\Users\用户名\OneDrive\", "https://onedrive.live.com/")

Else

' 否则,表示是本地路径

oneDriveURL = ""

End If

在上面的示例代码中,我们使用了 InStr 函数来判断字符串中是否包含指定的子字符串。如果路径中包含 "OneDrive",则表示是云端路径。接着,我们使用 Replace 函数将本地路径中的 "C:\Users\用户名\OneDrive\" 替换成 "https://onedrive.live.com/",从而得到 OneDrive URL。

通过以上的代码,我们成功地将 ThisWorkbook.FullName 转换成了 OneDrive URL。这个 URL 可以直接在浏览器中打开,方便我们与他人分享文件。

案例代码:

vba

Sub GetOneDriveURL()

Dim filePath As String

Dim oneDriveURL As String

filePath = ThisWorkbook.FullName

If InStr(filePath, "OneDrive") > 0 Then

' 如果路径中包含 "OneDrive",则表示是云端路径

oneDriveURL = Replace(filePath, "C:\Users\用户名\OneDrive\", "https://onedrive.live.com/")

Else

' 否则,表示是本地路径

oneDriveURL = ""

End If

MsgBox "OneDrive URL: " & oneDriveURL

End Sub

通过运行上面的代码,我们可以在弹出的对话框中看到转换后的 OneDrive URL。

通过使用 ThisWorkbook.FullName 属性,我们可以轻松地获取到当前工作簿的完整路径和文件名。如果这个路径是与 OneDrive 同步后的云端路径,我们可以通过简单的代码将它转换成 OneDrive URL,方便我们与他人分享文件。这个功能在与他人协作、文件共享等场景中非常有用。