这是我的代码:
Dim path As String
Dim user As String
user = CreateObject("WScript.Network").username
path = "C:Users" & user & "AppDataRoaming" & ThisWorkbook.Name & "-" & ThisWorkbook.Sheets("Settings").Range("B16") & ".log"
这适用于除一个人以外的所有人。
上面的VBA代码返回以下路径:C:UsersABcdeFAppDataRoaming
%appdata%
返回以下路径:C:UsersA'BcdeFAppDataRoaming
请注意第一个示例中缺少的单引号。我尝试了以下三种获取用户名的方法,但没有成功:
Environ("username")
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
CreateObject("WScript.Network").UserName
在我看来,用户名是错误的,需要由我的组织更改吗?
您的问题似乎是获取user
的...Roaming
文件夹的路径。
如果是这样的话,我建议使用:environ("appdata")
为我的工作尝试Application.UserName
。
或者也试试,replace(Environ("username"), "'", "")
这个只删除这个('(,解决这个问题。