VBA如何获取当前用户应用程序数据文件夹的路径?

Bin*_*ier 16 windows filesystems word-vba

一般来说,

使用VBA,如何确定当前用户Application Data文件夹的位置?

FileSystemObjects特殊文件夹只知道3个文件夹

  • WindowsFolder
  • SystemFolder
  • 临时文件夹

具体来说,我需要Word宏将文件复制到Application Data文件夹下的文件夹.

例如,在VB.Net中我可以My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData用来做这件事

Eri*_*ric 30

您可以使用Environ("AppData")此路径.Environ将提取任何系统变量,可以set在DOS提示符下使用该命令找到该变量.

  • 我认为 Environ() 方法不可靠,因为用户可以更改环境变量并可能导致意外结果。使用 Windows API 可能会更好。以下是查找文档/我的文档文件夹的示例:http://dailydoseofexcel.com/archives/2009/02/26/get-the-path-to-my-documents-in-vba/#comment-38211 如果您可以找到一种方法来为 AppData 文件夹执行此操作,这可能是更好的方法。 (2认同)

And*_*lli 9

使用advapi32.dll,你可以得到USERPROFILE通道

Environ("USERPROFILE")
Run Code Online (Sandbox Code Playgroud)

将其与"Application Data"目录(具有标准的特定名称)连接,以获得您想要的内容

CStr(Environ("USERPROFILE") & "\Application Data")
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看MSDN

  • 使用“CStr()”转换为字符串的替代方法是在运行前使用其类型字符“$”显式请求字符串数据类型 -“Environ$()”。 (2认同)