Я использую VBA для добавления информации в свою электронную таблицу всякий раз, когда данные вводятся в другой столбец. Однако для этого я разблокирую и заблокирую лист как часть скрипта vba. Это требует, чтобы пользователь повторно ввел свой пароль для редактирования следующей строки. Есть ли обходной путь для этого?

2 ответа2

0

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

Метод 1 (VBA Macro):

Private Sub Workbook_Open()

Dim winUser As String

winUser = Environ("username")

If winUser = "Admin" Then

Range("A1:I100").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="AdminRange", Range:=Range( _
    "A1:I100"), Password:="123"
End If

If winUser = "User1" Then

Range("A200:I400").Select
    ActiveSheet.Protection.AllowEditRanges.Add Title:="User1Range", Range:=Range( _
    "A200:I400"), Password:="231"
End If
End Sub

Способ 2:

  1. Нажмите « Обзор», затем нажмите « Разрешить пользователям редактировать диапазоны».
  2. Нажмите кнопку « Создать», после чего появится диалоговое окно « Новый диапазон ».
  3. Введите имя диапазона, ссылку на ячейку (диапазон) и пароль (пароль необязательный).
  4. Нажмите Permissions, затем Add, чтобы открыть Выбор пользователей или групп
  5. Если вы не можете найти имя / группу, нажмите кнопку « Дополнительно».
  6. Нажмите Найти сейчас.
  7. Затем нажмите « Пользователь» или «Группа» и нажмите кнопку « ОК».
  8. После того, как имя пользователя / группы было добавлено, вы можете определить, требуется ли пароль для редактирования диапазона.
  9. Наконец закончите с ОК.

Обратите внимание, при необходимости измените ссылки на ячейки и измените имя пользователя в коде VBA.

0

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

'Protect worksheet with a password
Sheets("Sheet1").Protect Password:="myPassword"

'Unprotect a worksheet with a password
Sheets("Sheet1").Unprotect Password:="myPassword"

Недостатком этого является то, что ваш пароль будет виден любому, кто может открыть ваш код. Таким образом, вы можете захотеть создать второй пароль для защиты вашего макрокода, если вы пойдете по этому пути. Смотрите ссылку ниже.

https://stackoverflow.com/questions/11981410/unprotect-sheet-with-password-without-exposing-password-in-the-macro

РЕДАКТИРОВАТЬ: на основе вашего комментария выше, это может помочь нам увидеть ваш код, а затем мы можем выяснить, где имеет смысл обрабатывать пароль.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .