#excel #vba
#excel #vba
Вопрос:
Вот мой код:
Dim path As String
Dim user As String
user = CreateObject("WScript.Network").username
path = "C:Users" amp; user amp; "AppDataRoaming" amp; ThisWorkbook.Name amp; "-" amp; ThisWorkbook.Sheets("Settings").Range("B16") amp; ".log"
Это работает для всех, кроме одного человека.
Приведенный выше код VBA возвращает следующий путь: C:UsersABcdeFAppDataRoaming
%appdata%
возвращает следующий путь: C:UsersA'BcdeFAppDataRoaming
Обратите внимание на отсутствие одинарных кавычек в первом примере. Я безуспешно попробовал три следующих способа получения имени пользователя:
Environ("username")
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
CreateObject("WScript.Network").UserName
На мой взгляд, имя пользователя неверно и должно быть изменено моей организацией?
Комментарии:
1. Почему бы просто не использовать
environ("appdata")
?2. @Ron Rosenfeld отправьте ответ, и я его приму. Это сработало.
Ответ №1:
Похоже, ваша проблема заключается в получении пути к ...Roaming
папке для user
.
Если это так, я предлагаю использовать: environ("appdata")
Ответ №2:
Попробуйте Application.UserName
для моей работы.
Или попробуйте тоже, replace(Environ("username"), "'", "")
это только удалить this (‘), обойти проблему.
Комментарии:
1.
Application.UserName
это другое дело.2. BigBen, согласен с вами, я знаю по этой причине, попробуйте.