首页 > 解决方案 > 将工作目录从 VBA 更改为 UNC

问题描述

有没有办法使用 UNC 名称更改 Excel 的工作目录?

这:从 Excel vba shell 更改工作目录解释了如何使用 ChDir / ChDrive。但是,对于 UNC 链接,没有“驱动器”† 这样的东西。

以下幼稚代码不会更改 CurDir:

ChDir "\\testserver\longunc\directory"
Debug.Print CurDir()
C:\Documents\ZZZ

以下显然失败了:

ChDrive "\\testserver\longunc\directory"
Run-time error '5': Invalid procedure call or argument

“驱动器”?..在2019年改变“驱动器”?..这多么愚蠢!为什么这个概念仍然存在,微软?

标签: excelvba

解决方案


您可以使用SetCurrentDirectory函数。

导入到 VBA:

Private Declare Function SetCurrentDirectoryA Lib "kernel32" (ByVal lpPathName As String) As Long

推荐阅读