因此,我们有一个需要用户登录的系统,并且该系统具有自己的漫游配置文件。因此,在此代码串中,如何定位当前用户的文档文件夹? (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)
该功能的其余部分都很棒...打开文件浏览器,我只是无法弄清楚告诉它寻找当前用户的语法。
答案 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