2016-12-22 5 views
0

У меня есть VBA код, который удалит всю строку, если ячейка в столбце имеет красный текстVBA Удаление строк на основе 2 колонки

Dim Cell As Range 

For Each Cell In Intersect(Columns("L"), ActiveSheet.UsedRange) 
    If Cell.DisplayFormat.Font.ColorIndex = 3 Then Cell.Value = "#N/A" 
Next 
On Error GoTo NoRedText 
Columns("L").SpecialCells(xlConstants, xlErrors).EntireRow.Delete 

NoRedText: 

Я хотел бы расширить этот код также включает другой столбец, включает в себя значение «Y» в ячейке.

Колонка L включает в себя красный текстовую строку

Колонка Р включает в себя «Y» текстовая строка

Поэтому, если текст красного цвета в столбце L и текст равен «Y» в колонке P это следует удалить всю строку

Что нужно добавить для кода для этого?

Спасибо

+1

Может быть что-то вроде 'Если Cell.DisplayFormat.Font.ColorIndex = 3 И Cell.Offset (, 4) = "Y" Тогда .... ' –

+0

Ничего себе вы так легко выглядели. Он работает отлично. Большое спасибо – BradleyS

+0

Я добавлю это как ответ, а не комментарий. –

ответ

0

Ваших Cell ссылки на переменной диапазон и все свойства, которые идут с ним.

Offset свойства

Возвращает объект Range, который представляет собой диапазон, который смещен от указанного диапазона . (https://msdn.microsoft.com/en-us/library/office/ff840060.aspx)

Используя эти знания, вы можете сказать код, чтобы посмотреть на диапазон, который компенсируется четырьмя колоннами:

If Cell.DisplayFormat.Font.ColorIndex = 3 AND Cell.Offset(,4)="Y" Then Cell.Value = "#N/A"