Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Очистка данных по цвету заливки ячеек - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистка данных по цвету заливки ячеек (Макросы/Sub)
Очистка данных по цвету заливки ячеек
miranim Дата: Четверг, 14.01.2016, 12:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток друзья. Прошу помощи в решении след задачи. Каждую неделю очищаю рабочие таблицы от данных.Для удобства, области, которые подлежат очистке я залил заливкой из двух типов(два потому что очистка совершается в разные периоды). Суть проблемы в том, что пробовал написать макрос для очистки по цвету заливки, но что то нифига не получается.
К сообщению приложен файл: 1003322.xlsx(9Kb)
 
Ответить
СообщениеДоброго времени суток друзья. Прошу помощи в решении след задачи. Каждую неделю очищаю рабочие таблицы от данных.Для удобства, области, которые подлежат очистке я залил заливкой из двух типов(два потому что очистка совершается в разные периоды). Суть проблемы в том, что пробовал написать макрос для очистки по цвету заливки, но что то нифига не получается.

Автор - miranim
Дата добавления - 14.01.2016 в 12:01
_Boroda_ Дата: Четверг, 14.01.2016, 12:07 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 9818
Репутация: 4146 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если Вы заранее знаете диапазоны, то почему бы не написать просто вот так
[vba]
Код
Range("C5:C20,J5:K9,K17:K23,O14:T14,P21,P25,N26").ClearContents
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли Вы заранее знаете диапазоны, то почему бы не написать просто вот так
[vba]
Код
Range("C5:C20,J5:K9,K17:K23,O14:T14,P21,P25,N26").ClearContents
[/vba]

Автор - _Boroda_
Дата добавления - 14.01.2016 в 12:07
miranim Дата: Четверг, 14.01.2016, 20:07 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, спасибо.но нет. таблиц много. подобных диапазонов в таблице много. этот вариант я хотел реализовать изначально. но на него в моем случае улетит много времени. продолжаю копать литературу, как привязать очистку к заливке(
 
Ответить
Сообщение_Boroda_, спасибо.но нет. таблиц много. подобных диапазонов в таблице много. этот вариант я хотел реализовать изначально. но на него в моем случае улетит много времени. продолжаю копать литературу, как привязать очистку к заливке(

Автор - miranim
Дата добавления - 14.01.2016 в 20:07
miranim Дата: Четверг, 14.01.2016, 20:42 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Наконец свершилось)
будет очищать цвет во всей таблице, указанный в ячейке. можно конечно привязать конкретно к цвету. можно конечно привязать не к ячейке, а сразу к цвету.
[vba]
Код
Sub plan()
Dim r As Range
Dim rgn As Range
Set rgn = Application.Worksheets(1).UsedRange
For Each r In rgn.Cells
If r.Cells.Interior.ColorIndex = Range("d5").Interior.ColorIndex Then
r.Cells.ClearContents
End If
Next
End Sub
[/vba]
[moder]Код нужно оформлять тегами![/moder]


Сообщение отредактировал Manyasha - Пятница, 15.01.2016, 10:16
 
Ответить
СообщениеНаконец свершилось)
будет очищать цвет во всей таблице, указанный в ячейке. можно конечно привязать конкретно к цвету. можно конечно привязать не к ячейке, а сразу к цвету.
[vba]
Код
Sub plan()
Dim r As Range
Dim rgn As Range
Set rgn = Application.Worksheets(1).UsedRange
For Each r In rgn.Cells
If r.Cells.Interior.ColorIndex = Range("d5").Interior.ColorIndex Then
r.Cells.ClearContents
End If
Next
End Sub
[/vba]
[moder]Код нужно оформлять тегами![/moder]

Автор - miranim
Дата добавления - 14.01.2016 в 20:42
Kuzmich Дата: Четверг, 14.01.2016, 20:52 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 238
Репутация: 43 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код

Sub plan()
Dim r As Range
  For Each r In Worksheets(1).UsedRange
    If r.Interior.ColorIndex = Range("d5").Interior.ColorIndex Then
        r.ClearContents
    End If
  Next
End Sub
[/vba]


Сообщение отредактировал Kuzmich - Четверг, 14.01.2016, 20:53
 
Ответить
Сообщение[vba]
Код

Sub plan()
Dim r As Range
  For Each r In Worksheets(1).UsedRange
    If r.Interior.ColorIndex = Range("d5").Interior.ColorIndex Then
        r.ClearContents
    End If
  Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 14.01.2016 в 20:52
_Boroda_ Дата: Четверг, 14.01.2016, 21:01 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 9818
Репутация: 4146 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
на него в моем случае улетит много времени

Почему? Включаете запись макроса, держа нажатым Контрл, тычете мышой в нужные для очистки ячейки, выключаете запись макроса. Лезете в VBA - там УЖЕ ГОТОВЫЙ кусок кода типа Range("C5:C20,J5:K9,K17:K23,O14:T14,P21,P25,N26"). Просто дописываете к нему ClearContents и все, макрос готов. Или Вы хотите сказать, что покрасить ячейки будет быстрее? Очень сомневаюсь.
И, кстати, сам макрос с циклом по ячейкам и поштучной их очистке будет работать во много раз дольше, чем все сразу скопом.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
на него в моем случае улетит много времени

Почему? Включаете запись макроса, держа нажатым Контрл, тычете мышой в нужные для очистки ячейки, выключаете запись макроса. Лезете в VBA - там УЖЕ ГОТОВЫЙ кусок кода типа Range("C5:C20,J5:K9,K17:K23,O14:T14,P21,P25,N26"). Просто дописываете к нему ClearContents и все, макрос готов. Или Вы хотите сказать, что покрасить ячейки будет быстрее? Очень сомневаюсь.
И, кстати, сам макрос с циклом по ячейкам и поштучной их очистке будет работать во много раз дольше, чем все сразу скопом.

Автор - _Boroda_
Дата добавления - 14.01.2016 в 21:01
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Очистка данных по цвету заливки ячеек (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!