Могу ли я использовать макрос для защиты ячейки в таблице Excel с помощью пароля?
461
Paul Y
У меня есть таблица Excel, настроенная как таймер. Сотрудник открывает свой файл хронометража для недели и заполняет дату окончания недели в указанном месте. С этого момента, только мышь используется для ввода. Сотрудник выбирает подходящую ячейку для дня недели и действия, связанного с пробиванием, переходом на обед, возвращением с обеда и возвращением домой. Поместив курсор на нужную ячейку, они нажимают кнопку (кнопка, связанную с макросом), которая указывает правильное время для действия. Я не могу понять, как не дать им просто пойти в нужную им ячейку и набрать в любое удобное для них время. Я попытался добавить защиту ячейки паролем как часть макроса кнопки, но не смог заставить это работать. У кого-нибудь есть способ защитить клетки, чтобы работник не мог изменить время? Или же,
** Мое наблюдение: ** 1. Кажется, что файл находится в защищенном режиме, а макрос позади позволяет только мышке перемещаться и нажимать на кнопку. Теперь то, что вы ищете, это позволить пользователю вводить данные в ячейки и после этого должны быть защищены.
Rajesh S 5 лет назад
0
** Cont ... **, Самая первая необходимость - просто поделиться макросом, который ограничивает перемещение указателя ячейки вокруг файла, чтобы помочь нам понять процесс. И да, пользователь может защитить данные после ввода. ☺
Rajesh S 5 лет назад
0
2 ответа на вопрос
0
Slartibartfast
Ваши пользователи имеют доступ для записи в файл Excel ...
Я не думаю, что вы можете технически применить это в Excel; Я думаю, что вы хотите альтернативное программное обеспечение. Я восхищаюсь твоим умением работать с макросами Excel.
Разработать:
Если пользователь может изменить ячейку, он не защищен от простого изменения ячейки пользователем (ввод значения).
Если пользователь не может изменить ячейку, он защищен от ввода пользователем значения, но он также не может заставить правильную информацию записываться в нее из макроса.
Это отличается от шифрования ячеек, что предотвращает даже чтение без пароля.
Я думаю, что существует множество программ для создания временных карт, и большинство из них, вероятно, может экспортировать собранные данные в Excel. Я бы расширил свои горизонты за пределы электронных таблиц, если бы я был на вашем месте.
0
harrymc
Вы можете запретить изменения в ячейках обработчиком событий VBA:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False With Target If If Not Intersect(Target, Range("A1:B10")) Is Nothing Then Application.Undo End With Application.EnableEvents = True End Sub
Я не знаю, вызывает ли это событие срабатывание при установке значения ячеек с помощью макроса VBA. Я знаю, что это не срабатывает для изменений, вызванных формулами. Но вы можете легко определить глобальную переменную, позволяющую устанавливать изменения перед изменением ячейки и впоследствии сбрасывать ее.
Вы также можете попытаться перехватить Worksheet_SelectionChangeсобытие, чтобы пользователь не мог поместить курсор в ячейку. Вы можете для запрещенных ячеек переместить курсор в какую-то предопределенную ячейку (например, A1) или написать более сложный код, чтобы запомнить последнюю разрешенную позицию курсора и изменить ее положение.