如何定位当前用户的文档文件夹?

时间:2018-08-11 21:11:35

标签: excel vba excel-vba exacttarget file-location

因此,我们有一个需要用户登录的系统,并且该系统具有自己的漫游配置文件。因此,在此代码串中,如何定位当前用户的文档文件夹? (FYI Excel 2010)

'WORKAROUND:
Dim PID As Double
Dim strRootPath As String

Const strExpExe = "explorer.exe"
Const strArg = " "    '" /e,/root, "

'this is where i need to figure out how to target current user's documents
'// Change rootpath here
strRootPath = "C:\Data Files"

PID = Shell(strExpExe & strArg & strRootPath, 3)

该功能的其余部分都很棒...打开文件浏览器,我只是无法弄清楚告诉它寻找当前用户的语法。

3 个答案:

答案 0 :(得分:1)

最好的方法可能是使用这样的函数:

Function docsFolder() As String
    docsFolder = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
End Function

还有其他方法,但是该方法可以在任何版本的Windows上运行,并且可以使用用户自定义。

例如,在我的情况下,我的文档文件夹位于映射的X:驱动器上,因此仅将用户名填充到C:\路径中是不可行的。


更多信息:

答案 1 :(得分:0)

我不确定您希望它有多灵活,但是您可以尝试以下方法

strRootPath = "C:\Users\" + Environ("Username") + "\Documents"

答案 2 :(得分:0)

知道了!谢谢!对于任何可能在乎的人...使她奔跑的最后一个字符串!

Function docsFolder() As String
docsFolder = 

CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
End Function




Private Sub test()

Dim PID As Double
Dim strRootPath As String

Const strExpExe = "explorer.exe"
Const strArg = " "    '" /e,/root, "


'// Change rootpath here
strRootPath = "C:\Users\" + Environ("Username") + "\Documents"

PID = Shell(strExpExe & strArg & strRootPath, 3)

End Sub