Visual Basic.Net
Суббота, 19.07.2025, 19:25
Меню сайта

Категории каталога
Visual Basic.NET [9]
Visual Basic 6.0 [17]
VBA [13]
VBScript [1]

Форма входа

Поиск

Друзья сайта
Создайте свой сайт Все для веб-мастера Программы для всех Мир развлечений WOlist.ru - каталог качественных сайтов Рунета

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Наш опрос
Оцените мой сайт
1. Отлично
2. Неплохо
3. Хорошо
4. Плохо
5. Ужасно
Всего ответов: 23

Главная » Статьи » Программирование на Visual Basic » VBA

Усовершенствованная защита листа в Exel
Данный пример защищает каждую ячейку в листе и, если ячейка не содержит формулы, дату или текст и ячейка в числовом формате, то снимает защиту и устанавливает цвет текста синим. Для всех остальных устанавливается черный цвет. Этот пример может быть использован для разрешения редактирования чисел, но запрещение на редактирование текста, дат и формул.
Sub Set_Protection()
On Error GoTo errorHandler'Установка хендлера ошибки
Dim myDoc As Worksheet'Объявление объектной переменной типя Лист
Dim cel As Range'Объявление переменной диапозона
Set myDoc = ActiveSheet'Инициализация
myDoc.UnProtect'Снятие защиты с листа, для того, что бы мы смогли его редактировать
For Each cel In myDoc.UsedRange'Цикл
If Not cel.HasFormula And _'Проверка на содержание формулы в ячейке
Not TypeName(cel.Value) = "Date" And _'Проверка на содержание даты в ячейке
Application.IsNumber(cel) Then'Если формат ячейки числовой, то
cel.Locked = False'Снимаем защиту
cel.Font.ColorIndex = 'Установка цвета
Else'иначе
cel.Locked = True'Защищаем
cel.Font.ColorIndex = xlColorIndexAutomatic'Устанавливаем цвет по умолчанию. Обычно черный
End If
Next
myDoc.Protect'Снова защищаем лист
Exit Sub
errorHandler:'Вывод ошибки, если таковая возникла
MsgBox Error
End Sub

Категория: VBA | Добавил: Vadim (12.01.2009)
Просмотров: 2596 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2025
Бесплатный конструктор сайтовuCoz