根据相邻单元格值VBA删除行

时间:2016-06-06 20:08:06

标签: excel vba excel-vba

我无法使用这段代码来删除不代表实际最小值的行。它根本不起作用,我亲手验证了逻辑。我想要检查的是第1行第2列中单元格的值是否大于第2行第2列。如果是这种情况,则完全删除第1行。我找到了类似于此循环的示例,但查找某个字符串值而不是将单元格值与逻辑语句进行比较。我已经做了检查,以确保它引用正确的工作表,并了解删除功能的工作原理。我还使用LRow + 1代替LRow - 1测试了代码。我做错了什么?

Sub rowdelete()
Dim LRow As Long
With Worksheets("WWOutput")
        For LRow = Cells(Rows.Count, 2).End(xlUp) To Cells(7, 2) Step -1
            If Cells(LRow, 2) > Cells(LRow - 1, 2) And Cells(LRow, 2) < 10000 Then
        Rows(LRow).EntireRow.Delete
    End If
 Next LRow
End With
End Sub

以下是一些示例数据。

11804.6875
6415.625095
6333.593845
3786.718845
11841.40682

在这种情况下,我想留下的所有数据都是

11804.6875
3786.718845
11841.40682

提前谢谢你!

1 个答案:

答案 0 :(得分:0)

像他们说的那样......

Sub rowdelete()
    Dim LRow As Long
    With Worksheets("Sheet1")
        For LRow = .Cells(Rows.Count, 2).End(xlUp).Row To Cells(7, 2).Row Step -1
            If .Cells(LRow, 2) > .Cells(LRow - 1, 2) And (.Cells(LRow, 2) < 10000) Then
                .Rows(LRow).EntireRow.Delete
            End If
        Next LRow
    End With
End Sub