如果值小于X,则在Excel中删除行

我试图删除Excel中的行,如果它符合列B中的值是小于100的标准。我看到了这一点,并试图遵循它,但我不是在VBA知识丰富,所以我不是确定去哪里。

编辑这是迄今为止我尝试过的代码,它不工作。

Sub DeleteR() Dim myRow As Range Dim toDelete As Range For i = 2 To 5000 If Worksheets("PalCountPLTZR").Cells(i, 2) < "99" Then Set myRow = Worksheets("PalCountPLTZR").Rows(i) If toDelete Is Nothing Then Set toDelete = myRow Else Set toDelete = Union(toDelete, myRow) End If End If Next i End Sub 

我不知道为什么它不起作用,但我想知道它看的单元格是来自查询。

您可以使用此循环来检查和删除列“A”中的行:

 Sub DeleteRows() 'get last row in column A Last = Cells(Rows.Count, "A").End(xlUp).Row For i = Last To 1 Step -1 'if cell value is less than 100 If (Cells(i, "A").Value) < 100 Then 'delete entire row Cells(i, "A").EntireRow.Delete End If Next i End Sub 

Ed向你展示了.Delete部分,在你链接的post中:

克里斯·尼尔森的解决scheme很简单,而且工作得很好。 稍微短一点的select是…

ws.Rows(RAND).Delete

除了这些知识以外,还需要添加一个if语句来显示要删除的条件,例如:

 If Cells(i,2)="x" Then Rows(i).Delete End If 

这种方法会为我使用一个循环,所以你需要阅读。

祝你好运,未来,把你已经尝试过的代码,特别是如果你已经在网上find其他代码试图实现,所以我们可以尝试帮助解决问题。

两件事情,

"99"应该是99

而且你永远不会在最后删除。

 Sub DeleteR() Dim myRow As Range Dim toDelete As Range For i = 2 To 5000 If Worksheets("PalCountPLTZR").Cells(i, 2) < 99 Then Set myRow = Worksheets("PalCountPLTZR").Rows(i) If toDelete Is Nothing Then Set toDelete = myRow Else Set toDelete = Union(toDelete, myRow) End If End If Next i If Not toDelete Is Nothing Then toDelete.EntireRow.Delete End Sub