1

私はマクロ/VBA を初めて使用するので、複数の条件に対してこのアクションを実行する方法がわかりません。値を持たないすべての行を削除しようとしています:列 D の識別失敗または識別成功。

' * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **** '

Sub DeleteRows()
'Action 1 --> Delete all Rows without Identify Fail in column D'
Application.ScreenUpdating = False

For i = Range("D" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Range("D" & i).Value <> "Identify Fail" Then Rows(i).Delete shift:=xlUp
Next i

Application.ScreenUpdating = True
End Sub

' * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **** '

別の基準で「OR」を追加しようとすると、機能しません。

' * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **** '

Sub DeleteRows()
'Action 1 --> Delete all Rows without Identify Fail in column D'
Application.ScreenUpdating = False

For i = Range("D" & Rows.Count).End(xlUp).Row To 1 Step -1
    If Range("D" & i).Value <> "Identify Fail" Or "Identify Success" Then   
Rows(i).Deleteshift:=xlUp
Next i

Application.ScreenUpdating = True
End Sub

' * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * **** '

私はこのウェブサイトを精査しており、そのトリックを実行する効率的なコードを見つけられなかったため、提案をいただければ幸いです。

4

1 に答える 1

1

この行を変更

 If Range("D" & i).Value <> "Identify Fail" Or "Identify Success" Then 

If Range("D" & i).Value <> "Identify Fail" Or _ 
   Range("D" & i).Value <> "Identify Success" Then 

条件を完全に指定する必要があります。

ただし、条件は互いに矛盾するため、常に合格します。使用するつもりだと思います

If Range("D" & i).Value <> "Identify Fail" And _ 
   Range("D" & i).Value <> "Identify Success" Then

この例では、D10 に「Identity Fail」を追加しました

スクリーンプリントの例

于 2013-10-30T22:37:52.163 に答える