我有一个Excel工作簿存储在我的PC上本地,但在我的 OneDrive 同步文件夹中。每当我尝试(从即时窗口和编程方式):
? Excel.Application.ThisWorkbook.FullName
我得到的结果是:
https://d.docs.live.net/c31ceb5b47a36fa2/VBA/learnVBAmacros.xlsb
而我的文件的真实的本地路径是:
C:\用户\访问集\OneDrive\VBA\学习VB宏.xlsb
如何检索工作簿的后一个LOCAL路径,而不是它在OneDrive上的URL?
7条答案
按热度按时间sxissh061#
只需转到您的一个驱动器设置,并取消勾选“使用办公应用程序同步...”
enter image description here
ssm49v7z2#
拆分文件名并使用本地OneDrive文件夹的环境变量。
请注意,有OneDrive和OneDriveConsumer环境变量。我自己的环境变量是相同的,但每个都必须有原因。
myss37ts3#
这个可以用,对不起,我不记得在哪里找到的
jfewjypa4#
我也遇到了同样的问题,解决起来很容易。
如果您的文件在OneDrive上等待同步,则URL地址的值为
ThisWorkBook.Path
。除非文件同步,否则
ThisWorkBook.Path
的值将包含文件的本地地址。dldeef675#
结合前面的几个答案,我选择了这个函数。它对OneDrive URL的格式做了更少的假设,并且它使用环境而不是注册表。
注意:它 * 仍然 * 对OneDrive URL做出假设。具体来说:
eivnm1vs6#
我使用FileSystemObject解决了这个问题。
ulydmbyx7#
我用CurDir解决了这个问题