Код VBA для сохранения и обновления рабочего листа работает только для меня?

#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:

Неважно, этот вопрос. Прошу прощения, пользователь сказал, что они «уверены», что включили макросы, но, видимо, это не так.

Тем не менее, я думаю, что альтернатива использованию имени среды вместо имени лицензии на программу лучше, поэтому я ценю вашу помощь.