1

所以我们有一个要求用户登录的系统,它有自己的漫游配置文件。那么在这串代码中,我如何定位当前用户的文件夹?(仅供参考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)

该功能的其余部分做得很好......它打开文件资源管理器我只是想不出告诉它寻找当前用户的语法。

4

3 回答 3

2

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

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

还有其他方法,但这种方法适用于任何版本的 Windows 并具有用户自定义。

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


更多信息:

于 2018-08-11T21:21:27.790 回答
0

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

strRootPath = "C:\Users\" + Environ("Username") + "\Documents"
于 2018-08-11T21:22:38.753 回答
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
于 2018-08-11T22:01:06.910 回答