Страницы: 1
RSS
Удалить ячейки на листе по цвету, со смещением вверх
 
Всем привет . Нужно удалить ячейку , залитую цветом , со смещением вверх.
Поискал на форуме, находил только удаление всей строки.  
Изменено: Max.il - 08.12.2018 19:57:44
 
Макрорекодер что говорит?
 
vikttur,А как я им определю цвет ячейки ...
 
Код
If Activecell.Interior.Color = 'тут вводим номер нужного цвета' Then
...нужные инструкции
End If
Кому решение нужно - тот пример и рисует.
 
Пытливый, Спасибо , номер 7 - м значный который ?  
 
Я просил показать пару строк удаления, которые Вы сами нашли...

Что-то типа такого (перед запуском выделить диапазон):
Код
Sub DelCell()
Dim rRng As Range, c
    Set rRng = Selection
    
    For Each c In rRng
        If c.Interior.Pattern <> xlNone Then c.Delete Shift:=xlUp
    Next c
    
    Set rRng = Nothing
End Sub

Проверьте. Возможно, такой цикл не подойдет...
 
vikttur,Нужно удалить все ячейки залитые серым цветом со всего листа.  
 
Точно. Не зря сомневался - нужно удалять снизу вверх.
Код
Sub DelCell_2()
Dim rRng As Range
Dim i As Long, j As Long, k
    Set rRng = ActiveSheet.UsedRange
    
    For i = rRng.Rows.Count To 1 Step -1
        For j = 1 To rRng.Columns.Count
            If rRng(i, j).Interior.Pattern <> xlNone Then rRng(i, j).Delete Shift:=xlUp
        Next j
    Next i
    
    Set rRng = Nothing
End Sub

На активном листе удалит все залитые ячейки. Для удаления только ячеек с нужным ненужным цветом: заменить строку в коде подсказкой Пытливого
 
vikttur, Спасибо , правда удаляет все не с первого раза. Но 5-8 повторений и все ок  
 
Именно поэтому показан второй код.
Страницы: 1
Наверх