VBA基于2列删除行

时间:2016-12-22 13:46:19

标签: excel vba excel-vba

我有一些VBA代码,如果列中的单元格有红色文本

,则会删除整行
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包含红色文本字符串

P列包含“Y”文本字符串

因此,如果L列中的文本为红色且P列中的文本等于“Y”,则应删除整行

我需要在代码中添加什么来实现这一目标?

谢谢

1 个答案:

答案 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"