如何使用 VBA 获取 word 文档的磁盘路径? Document.Path 改为返回 Web 路径

Posted

技术标签:

【中文标题】如何使用 VBA 获取 word 文档的磁盘路径? Document.Path 改为返回 Web 路径【英文标题】:How can I get the disk path of a word document using VBA? Document.Path returns the web path instead 【发布时间】:2020-07-09 08:41:21 【问题描述】:

我有一个带有一些 vba 代码的 word 文档。我想返回保存word文档的目录路径。

这是我使用的代码:

Dim PathCurrentDocument As Variant
PathCurrentDocument = ActiveDocument.path
Debug.Print PathCurrentDocument

想要的输出是:

“C:\Users\firstname.lastname\OneDrive - 公司名称\VBA\4_update_documents_with_vba_inside_word\document_templates_to_modify”

我得到的是网络链接,如下所示:

https://my-company.sharepoint.com/personal/my_name/Documents/VBA/4_update_documents_with_vba_inside_word/Document_A_Template_with_macro.docm

microsoft documentation 仅表示该属性返回文档的磁盘或 Web 路径。它没有说如何选择返回哪个。

【问题讨论】:

Document.FullName 也返回 web 路径 Path (FullName) 返回真实路径。为什么(或如何)它应该返回未保存文档的路径?如果要将文档保存在其他位置,则必须设置特定目录。 它确实返回了保存文档的真实路径,只是格式不正确。我希望该路径作为磁盘路径,但它作为 Web 路径返回。 路径不是您想要的,并不意味着它不正确。您将始终获得打开文档的路径或保存到的路径。如果从本地磁盘或网络驱动器打开文档,您将获得磁盘路径。如果它是从 OneDrive 或 SharePoint 打开的,您将获得一个 Web 路径。这就是 Word 的工作原理。 现在我明白了。这是一个 Web 路径,因为该文件存储在 OneDrive 中。谢谢蒂莫西。 【参考方案1】:

根据文档的来源,Document.Path 属性返回文档的磁盘或 Web 路径。

如果要获取本地文件路径,请使用Document.SaveAs2 方法。基本上,您需要将文件保存在硬盘上的任何位置。

【讨论】:

以上是关于如何使用 VBA 获取 word 文档的磁盘路径? Document.Path 改为返回 Web 路径的主要内容,如果未能解决你的问题,请参考以下文章

使用VBA提取word文档的段落号

高手们,请问VBA里面怎么获取WORD文档里的目录所对应的内容呢?

使用 Excel VBA 从 Word 文档中提取公司属性

VBA如何使用循环直到word文本的结尾?

从Word文档中获取标题

为啥每次使用 VBA 保存 word 文档时文件大小都会增加?