2016-05-24 5 views
0

列AのIDフィールドに "AB"または "ON"がない行全体を削除しようとしています。以下のコードを記述しましたが、行。誰でもこの助けてくれて助けてくれますか?私はデータのスクリーンショットを添付しました、ありがとう! Data Screenshot linkExcelで特定のテキストを持たない行全体を削除する

Sub DeleteRows() 

FinalRow = Cells(Rows.Count, "A").End(xlUp).Row 

i = 2 

Do While i <= FinalRow 

    If Cells(i, "A") <> "PQ*" OR If Cells(i, "A") <> "ON*" Then 

     Cells(i, 1).EntireRow.Delete 

     FinalRow = FinalRow - 1 

    Else 

     i = i + 1 

    End If 

Loop 

End Sub 
+1

ループ。 – findwindow

+2

これは文字列の完全一致を検索しています。これがワイルドカードとして '*'を使用していない場合は、ORをFステートメントのANDに変更してください。それ以外の場合は、Instr()を調べてより多くの変更を行う必要があります。 –

+0

こんにちはScottさん、ORをANDに変更しても動作しませんでした。それはまだシートのすべての行を削除しています –

答えて

2

:後方

Sub DeleteRows() 

FinalRow = Cells(Rows.Count, "A").End(xlUp).Row 

i = 2 

Do While i <= FinalRow 

    If Left(Cells(i, "A"), 2) = "PQ" Or Left(Cells(i, "A"), 2) = "ON" Then 

     i = i + 1 

    Else 

     Cells(i, 1).EntireRow.Delete 

     FinalRow = FinalRow - 1 


    End If 

Loop 

End Sub 
+0

恐ろしい!それは動作します。助けを借りてくれてありがとうScott! –

1
  • 行を削除するとき、あなたは
  • ワイルドカードは等価演算子で使用することはできません下から上に行くほうが良いでしょう。 Like演算子を使用する必要があります。
  • ロジックが少しずれています。あなたは括弧

あなたは私はあなたのオリジナルのポストでそれを理解してワイルドカードを使用している場合でORを囲む必要があり、それは PQで始まるか

ように細胞に変換します。

Option Explicit 
Sub DeleteRows() 
    Dim FinalRow As Long 
    Dim I As Long 

FinalRow = Cells(Rows.Count, "A").End(xlUp).Row 

For I = FinalRow To 2 Step -1 
    If Not (Cells(I, "A") Like "PQ*" Or _ 
     Cells(I, "A") Like "AB*") Then _ 
     Cells(I, 1).EntireRow.Delete 
Next I 

End Sub 
0

ここでは、あなたがしていたものに似ているオプションがあります。

EDITED:IDが最初の2文字であれば機能します。私のコメントを1として

Sub Deleterows() 

FinalRow = Cells(Rows.count, "A").End(xlUp).row 

i = 2 

Do While i <= FinalRow 

If Not Left(Cells(i, "A"), 2) = "PQ" And Not Left(Cells(i, "A"), 2) = "ON" Then 

    Cells(i, 1).EntireRow.Delete 

    FinalRow = FinalRow - 1 

Else 

    i = i + 1 

End If 

Loop 

End Sub 
+0

こんにちはtimthebomb、私のIDはAB0001、SK0002などの形式で、現在のif条件ではABまたはONのIDを認識しませんが、ABと完全に一致しないのですべての行を削除しますまたはON –

+0

がID – timthebomb

+0

の要件に従って編集されています。助けてくれてありがとう! –

関連する問題