如果值小于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