删除所有不具有值的行:列D中的条件1或条件2或条件3 – >将VBAmacros用于Excel

我是新的macros的/ 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 

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

一旦我尝试添加“或”与另一个标准,它不起作用:

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

 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 

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

任何build议,将不胜感激,因为我一直在淘网站,并没有find一个有效的代码,将伎俩。

改变这一行

  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 

你必须指定完整的条件..

然而条件condtenict对方,所以它总是会通过..我想你的意思是使用

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

在这个例子中,我添加了“身份失败”到D10

示例屏幕打印