Как добавить имя компьютера и имя пользователя с помощью vba

Как я могу использовать имя компьютера и имя пользователя для каждого компьютера с Windows 7 и 10 в моей сети в качестве переменных, которые нужно ввести в таблицу.

Я использую таблицу на скрытом листе для записи сохранений в книгу. Файлы открываются и сохраняются на сетевом компьютере. Я хотел бы знать, кто сэкономил на каждой книге

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim ws As Worksheet
Set ws = Sheets("EDITS")
Dim tbl As ListObject
Set tbl = ws.ListObjects("Table1")
Dim newrow As ListRow
Set newrow = tbl.ListRows.Add

'DIM SOME MORE OBJECTS
Dim computername, username As String
Dim ComputerNameLen As Long

computername = Environ("computer name") 'Get computer name
username = Environ("user name") 'Get user name


SavePrompt.Show

With newrow
    .Range(1) = Now
    .Range(2) = SavePrompt.TextBox1.Text
    .Range(3) = computername
    .Range(4) = username 

End With

Unload SavePrompt
Unload computername
Unload username
End Sub

Диапазон (1) и Диапазон (2) заполнены правильно, но для диапазонов (3) и (4) ничего не отображается.

Я думаю, что с моими объектами что-то не так?

environ("username") и environ("computername"). Без пробелов.
cyboashu 13.09.2018 19:36

Я не понимал, что среду можно использовать таким образом, я всегда использовал индекс и разбивал результат, например. Environ(1) дайте мне username=billy - глупый я!

jamheadart 13.09.2018 19:39

Когда я это сделаю, я получаю сообщение «Ошибка компиляции: требуется объект». @cyboashu В частности, с "= username"

Kenny 13.09.2018 19:39

Сначала правильно объявите вам переменную computername Dim computername As String, username As String. Если вы опустите этот As String, вы получите вариант, который может вызвать некоторые проблемы. Он не просто берет тип из последней переменной в строке Dim.

JNevill 13.09.2018 19:42

@JNevill Я изменил свои тусклые строки на Dim computername As String Dim username As String computername = Environ ("computername") username = Environ ("username") 'Получение имени пользователя

Kenny 13.09.2018 19:45

@ Кенни, на какой полной строке вы получаете сообщение об ошибке? в вашем комментарии 10 минут назад вы сказали, что он находится на линии с = username?

dwirony 13.09.2018 19:51

Я решил это с помощью Dim computername As String Dim username As String computername = Environ ("computername") username = Environ ("username") спасибо @JNevill. эта последняя ошибка была из-за того, что что-то осталось после того, как попробовали что-то другое и пропустили удаление строки при попытке вашего решения.

Kenny 13.09.2018 19:51

Если вам нужны материалы Active Directory, загляните в GetObject ("LDAP") и т. д.

MacroMarc 13.09.2018 23:39
0
8
1 996
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim ws As Worksheet
Set ws = Sheets("EDITS")
Dim tbl As ListObject
Set tbl = ws.ListObjects("Table1")
Dim newrow As ListRow
Set newrow = tbl.ListRows.Add

'DIM SOME MORE OBJECTS
Dim computername As String
Dim username As String
computername = Environ("computername")
username = Environ("username") 

    SavePrompt.Show

With newrow
    .Range(1) = Now
    .Range(2) = SavePrompt.TextBox1.Text
    .Range(3) = computername
    .Range(4) = username

End With

Unload SavePrompt

End Sub

Другие вопросы по теме