规则1:删除行A列中的IF单元格为绿色,列J包含术语" SA注释 - "只是包含不完全那么删除行。 然后规则2:删除列A中的行IF单元格为红色和列J不包含术语" SA注释 - "然后删除行。 然后规则3:如果J列中的单元格没有值那么添加术语" Sa评论 - "任何没有价值的细胞。
这些单元格是否用条件格式填充为红色?
我明白我需要用户Instr?如果我没有找到完全匹配。
Sub sbDelete_Rows_Based_On_Cell_Color()
Dim lRow As Long
Dim iCntr As Long
lRow = 9999
For iCntr = lRow To 1 Step -1
If Cells(iCntr, 1).Interior.ColorIndex = xlNone And Cells(iCntr, 10).Value = "SA Comments -" Then
'2 = None
Rows(iCntr).Delete
ElseIf Cells(iCntr, 1).Interior.ColorIndex = 3 And Cells(iCntr, 10).Value <> "SA Comments -" Then
'4 = Red
Rows(iCntr).Delete
End If
Next iCntr
End Sub
答案 0 :(得分:1)
以下代码适用于我,只需确保您在A列的单元格中有Interior.Color
为4。
不确定,但您希望与“SA评论”完全匹配或部分匹配?
您是否在检查A列内部颜色的同时在J列中查找文本?
Private Sub CommandButton21_Click()
Dim lastrow As Long
With ThisWorkbook.Worksheets("Outstanding Aged Incidents")
' reading last row with data from Column A
lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = lastrow To 2 Step -1
If .Cells(i, 10).Value = "SA Comments -" And .Cells(i, 1).Interior.Color = 4 Then
.Rows(i).Delete
End If
Next i
End With
End Sub
编辑1 :如果您正在寻找“SA评论 - ”的部分匹配,您有两种选择:
Instr - 请使用以下行:
If InStr(.Cells(iCntr, 10).Value, "SA Comments -") > 0 Then
赞 - 请使用以下行:
If .Cells(iCntr, 10).Value Like "*SA Comments -*" Then
编辑2 :修改后的代码,以适应自原始帖子以来PO上传的代码。
Sub sbDelete_Rows_Based_On_Cell_Color()
Dim lRow As Long
Dim iCntr As Long
lRow = 9999
For iCntr = lRow To 1 Step -1
If Cells(iCntr, 1).Interior.ColorIndex = xlNone And InStr(Cells(iCntr, 10).Value, "SA Comments -") > 0 Then
'2 = None
Rows(iCntr).Delete
ElseIf Cells(iCntr, 1).Interior.ColorIndex = 3 And InStr(Cells(iCntr, 10).Value, "SA Comments -") > 0 Then
'4 = Red
Rows(iCntr).Delete
End If
Next iCntr
End Sub