Возвращается неправильное имя пользователя, отсутствуют одинарные кавычки

#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

Обратите внимание на отсутствие одинарных кавычек в первом примере. Я безуспешно попробовал три следующих способа получения имени пользователя:

  1. Environ("username")
  2. CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
  3. 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, согласен с вами, я знаю по этой причине, попробуйте.