#vba #excel
#vba #excel
Вопрос:
Итак, у меня есть рабочий лист, который должен быть сохранен, и имя пользователя Excel должно быть обновлено в ячейке P1, а текущее время отмечено в Q1. Это также должно блокировать ячейки для редактирования паролем при нажатии кнопки сохранения.
Тем не менее, он отлично работает, когда я обновляю лист, но не так с другими пользователями. У них включены макросы, поэтому я знаю, что это не причина.
Ниже приведен код, который я использую:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Range("P1") = "Last Update: " amp; Format(Now)
Range("Q1").Value = Application.UserName 'Stamp the current user name
Worksheets("Org Chart").Activate
ActiveSheet.Protect ("Password")
End Sub
Есть ли что-то неправильное в этом коде, что может быть причиной такого поведения?
Ответ №1:
Попробуйте использовать:
Range("Q1").Value = Environ("username")
это должно давать разное значение, когда другой пользователь открывает книгу. Если несколько пользователей используют одну и ту же рабочую станцию для открытия книги, вам понадобится какая-то другая технология…
Комментарии:
1. Все находятся на разных рабочих станциях, но это, похоже, тоже не работает.
Ответ №2:
Неважно, этот вопрос. Прошу прощения, пользователь сказал, что они «уверены», что включили макросы, но, видимо, это не так.
Тем не менее, я думаю, что альтернатива использованию имени среды вместо имени лицензии на программу лучше, поэтому я ценю вашу помощь.