Страницы: 1
RSS
VBA скрытие строк без цветной заливки ячеек
 
Здравствуйте, помогите пожалуйста. Нужен макрос, который в большой таблице будет проходиться по каждой строке и если в ней нет залитой ячейки (без учёта условного форматирования)
то скрыть эти строки. Столбцы не скрывать  
 
Код
For Each cell In Selection
        If Not cell.Interior.Color = 65535 Then cell.EntireRow.Hidden = True
    Next
Соблюдение правил форума не освобождает от модераторского произвола
 
Прошу прощения, мне необходимо чтобы строки в которых нет цвета скрывались. Я убрал Not , но работает неккоректно  
 
Цитата
Dbogik написал:
работает неккоректно  
в чём проявляется некорректность? вы же все ячейки листа проверяете - зачем? опишите задачу конкретнее
Соблюдение правил форума не освобождает от модераторского произвола
 
Вот конкретная задача, начиная с 3й строки и до конца, проверять целиком строку на наличие в ней ячеек залитых цветом, если таковых не имеется (если в строке нет залитых цветом ячеек) то скрывать эту строку(или лучше вообще удалять строки в которых нет ячеек залитых цветом).
Изменено: Dbogik - 17.07.2019 09:39:33
 
попробуй сравнивать не цвет, а индекс. Нет заливки это не белый цвет
Код
cell.Interior.Colorindex= -4142
Изменено: Александр Моторин - 17.07.2019 09:40:59
 
В названии темы
Цитата
скрытие строк если есть цвет
В сообщении:
Цитата
Dbogik написал:  (если в строке нет залитых цветом ячеек) то скрывать эту строку
В названии
Цитата
скрытие
В сообщении:
Цитата
скрывать... или... удалять
Вы уж определитесь...
 
Цитата
vikttur написал:
Вы уж определитесь...
Вы же сами видите что в дальнейшем пишу про то чтобы скрыть строки без цвета. Дважды уже написал это. Скрыть и еще раз скрыть если нет залитых ячеек в строке, если так более понятно будет
 
У меня нет времени перечитывать все сообщения во всех темах. Есть замечание. есть реакция.
 
Думаю, такой код будет более быстрым:
Код
Sub SSS()
    Dim rrow As Range, lr As Long
    Application.ScreenUpdating = False
    For lr = 3 To ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
        Set rrow = ActiveSheet.Rows(lr)
        If Not IsNull(rrow.Interior.ColorIndex) Then rrow.Hidden = True
    Next
    Application.ScreenUpdating = True
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Боже мне просто необходима помощь в том чтобы из 2000 строк остались только те строки, в которых хотя бы одна ячейка залита цветом.
 
Прекрасно, работает на ура, спасибо большое, на сколько будет сложно сделать, чтоб была возможность выбрать файлы (или папку в которой они лежат, например файлы 1,2,3), и происходило формирование одного файла, в котором остануться только строки с цветом из файлов 1+2+3
 
Цитата
Dbogik написал: Боже мне просто необходима помощь
А мне необходимо, чтобы в темах был порядок. Ознакомьтесь с правилами форума и на будущее: если есть замечание, прошу без особых препирательств и рассуждений устранять их.
Страницы: 1
Наверх