sword12
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Защита ячеек в Exel-документе(для начинающих в VBA) Часто при написании небольших програмок для инженерных расчетов в Екселе (формулы в ячейках), встает проблема по защите содержания ячеек от случайных измененний.При этом стандартные способы Exsel по защите листа фактически сводят на ноль всю прелесть пользования своей "эксклюзивной программой"(возможно в лецензионном Ofis ситуация иначе). Програмист я некудышный, но после долгих и нерегулярных изучений путанно-высокомерно-непонятной литературы по прграммированию сваял такой фрагмент: В начале пишем в Екселе (например на Лист1) свою программу с расчетами, формулами, коментариями, ну и прочим оформлениями и прелестями. Далее: Сервис - Макрос - Создать... Создаем допустим макрос под названием w2 Выпадает окно VBasic , где: В модуле1 автоматически создается запись для макроса w2, если нет, то напишите сами (в смысле вписать w2) Sub w2() End Sub Далее на Лист1 (например) пишем следующий фрагмент кода, где указываем ячейки в каких можно и необходимо вводить данные.В зависимости от ввода единичной ячейки или диапазона, используют соответственно знак , либо : и так далее, все остальные ячеки листа в дальнейшем будут недоступны для редактирования. Пример: Private Sub Worksheet_Change(ByVal Target As Range) Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Range("B1:D1,B10:D10,B20:D20,С25").Select ' перечень ячеек для ввода End Sub Все, далее запуск, сохранить и пользуйся. После вызова соответств. книги Ексель открывается лист вашей программы, щелкните где угодно, соответств. ячейки окрасятся в цвет выделения и активизируется первая ячейка по списку. Перемещение по ним - кнопка Тав., убрать все выделения - стрелочка внизу экрана справа (выбор объекта) например для распечатки. Ввод при этом возможен только в выделенные ячейки посредством клавиатуры с перемещения по ячейкам с помощью кнопки Таб, мышь при этом ничего не может изменить,я конечно не исследовал изощреных способов. p.s. неудобства - после ввода данных в одну ячейку приходится к следующей переходить снова с первой ячейке посредством кнопки Таб.Для возможных исправлений в ячейках с формулами документе снова войдите на VBasic и поставьте апостроф перед оператором строки с Range... вот так 'Range ..., после изменений все вернуть назад. Все ... 2006 |