2017-01-05 11 views
0

ルール1:行を削除する列AのIFセルは緑色で、列Jには「SAコメント」という用語が含まれています。 ルール2:行の削除列AのIFセルは赤色であり、列Jは「SAコメント - 」「THEN行削除」という用語を含んでいません。 次にルール3:列Jのセルに値がない場合THEN値のないセルに「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 

答えて

1
以下のコードは、私の作品

、ちょうどあなたが

わからないA列のセルに4のInterior.Colorを持っていることを確認していますが、完全一致または部分一致を持っているために探しています"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

: - : - 以下の行を使用

INSTRあなたは "SAコメント" の部分一致を探しているなら、あなたは2つの選択肢を持っています

If InStr(.Cells(iCntr, 10).Value, "SA Comments -") > 0 Then 

Liオリジナルのポスト以来、POによってアップロードされたコードに合わせて変更したコード:

If .Cells(iCntr, 10).Value Like "*SA Comments -*" Then 

編集2: - KEは、以下の行を使用します。

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 
+0

こんにちは、私は完全一致を探していません。現在、現在そのソリューションを探しています。私は現在以下のコードを下に持っています。 サブsbDelete_Rows_Based_On_Cell_Color() 暗いlRow限り 暗いiCntr限り iCntr = lRowについてlRow = 9999 1つのステップに-1 セルの場合(iCntr、1)。 Interior.ColorIndex = xlNoneとInStr関数(1、cel.Value、 "SAコメント - ")次に 「2 =なし 行(iCntr).Delete のElseIf細胞(iCntr、1).Interior.ColorIndex = 3セル(iCntr、10)。値 ">" SAコメント - "Then '4 =赤 行(iCntr)。削除 終了の場合 終了サブ –

+0

@ D.Mitchellは、**編集1 ** –

+0

の下に私の追加された答えを読んでいます。私は、無効または不適格なrefを持っていますか? –

関連する問題