Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 17:18   #1
NoLL
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 24
По умолчанию поиск не заблокированных ячеек макросом

Господа! Помогите!
Казалось бы мелочь, можно ли на листе найти, при помощи макроса, незаблокированные ячейки(тоесть там где не стоит галочка на блоке в формате ячейки и что бы макрос закрашивал их краным?

Неважно заблокирован лист или нет.
NoLL вне форума Ответить с цитированием
Старый 23.12.2010, 18:50   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Понажимайте кнопочки в файле-примере:



Вот весь код:

Код:
Sub Закрасить()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In ActiveSheet.UsedRange.Cells
        If Not cell.Locked Then cell.Interior.Color = vbRed
    Next cell
End Sub

Sub Очистить()
    ActiveSheet.UsedRange.Interior.ColorIndex = 0
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 23.12.2010, 19:00   #3
NoLL
Пользователь
 
Регистрация: 11.11.2010
Сообщений: 24
По умолчанию

Огромное спасибо!!
NoLL вне форума Ответить с цитированием
Старый 23.12.2010, 23:02   #4
vostok
Форумчанин
 
Регистрация: 29.04.2009
Сообщений: 119
По умолчанию

Всем привет! А я вот защищаю ячейки столбцами, а в данном примере после 40-й ячейки не красит, почему?
vostok вне форума Ответить с цитированием
Старый 24.12.2010, 06:23   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
а в данном примере после 40-й ячейки не красит, почему?
Потому, что ячейки перебираеются только в используемой части листа: ActiveSheet.UsedRange

Ячейки приходится перебирать в цикле - поэтому перебор ВСЕХ ячеек на листе (да ещё и с их раскраской) весьма замедлит макрос.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск влияющих ячеек Meta2 Microsoft Office Excel 3 27.10.2010 22:45
Поиск и копирование ячеек ruvid Microsoft Office Excel 5 29.07.2010 20:13
поиск макросом дубликатов в таблице эксель brokoli Microsoft Office Excel 12 20.01.2009 11:26
Копировать значения ячеек макросом torus Microsoft Office Excel 1 09.11.2008 00:15