![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
Никто не подскажет, как сделать макрос, чтобы автоматически протектились ячейки определенного цвета? Желательно написать по-подробнее... буду очень благодарен!
|
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
Тема: макрос по защите строк, а спрашиваете как защитить ячейки.
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
#3 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
Очень благодарен за идеальный ответ
![]() ![]() |
![]() |
![]() |
#4 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
Если это происходит из-за мощности компьютера (эксель долго обрабытывает каждую ячейку), то можно ли как-нибудь облегчить данный цикл? И хотел бы точно удостовериться, что правильно понимаю код:
Sub Protect() On Error Resume Next ActiveSheet.Unprotect For Each c In Cells c.Locked = c.Interior.ColorIndex = 6 Next ActiveSheet.Protect End Sub --> он будет лочить все ячейки желтого цвета (ColorIndex = 6), правильно ведь? |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте такой вариант:
Код:
По сути, всё то же самое, что и в примере от IgorGO, только вместо перебора всех ячеек листа (For Each c In Cells) происходит перебор ячеек в используемой области листа - ActiveSheet.UsedRange.Cells Возможно, разница в одном слове - UsedRange - значительно увеличит скорость обработки.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 03.12.2008 в 13:01. |
![]() |
![]() |
#6 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
Всем большущие спасибо!!!
|
![]() |
![]() |
#7 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
Только еще один маленький вопрос: как можно это сделать на большее количество цветов, а то я как не пытаюсь через if сделать или простым дублированием - ничего не помогает
![]() |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
так даже правильнее будет: предыдущий код присваивал статус "защищаемая"/"незащищаемая" всем ячейкам. Ячейки которые не имели нужного цвета - становились "беззащитными"..., теперь их просто "не трогают".
For Each c In Cells if c.Interior.Color = xx then c.Locked = True: Exit sub end if if c.Interior.Color = yy then c.Locked = True: Exit sub end if .... и так по всем цветам Next
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
#9 |
Регистрация: 03.12.2008
Сообщений: 7
|
![]()
IgorGO,
к сожаленю, после и этого Вашего кода, мой эксель-файлик просто, намертво, виснет ![]() |
![]() |
![]() |
#10 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Попробуйте так:
Код:
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добрый день и снова вопрос по защите) | Wasily | Microsoft Office Excel | 17 | 18.06.2008 10:26 |
Excel max 256 строк VS user надо 300 строк | Exo | Microsoft Office Excel | 3 | 10.01.2008 17:14 |
HELP!Си - программа для работы со строками + сумма строк в матрице! | DUPLET | Помощь студентам | 1 | 20.12.2007 21:16 |
подписать столбцы в компоненте StringGrid и убрать поля для надписи строк? | фЁдОр | Помощь студентам | 35 | 12.09.2007 14:13 |
Совмещение строк по ячейкам в Excel | asfa | Microsoft Office Excel | 6 | 16.03.2007 01:13 |