如何在IF语句中使用Rows(x:x).select

时间:2017-10-03 21:17:40

标签: excel excel-vba vba

我有一个电子表格,我有一个宏,可以将数据量减少到可管理的数量。下一步是将列单元格的值与宏中确定的预定义数字进行比较,并放置在远离数据的另一个单元格中。如果该值小于预定值,我想删除整行,然后继续下一行并再次执行。最后,我应该留下的是该列大于预定值的行。

假设列为C,预定值为M1。我该怎么做?

BTW,迄今为止的宏已经根据C列从最大到最小过滤了数据,所以我基本上希望找到C中的第一个值小于另一个值,然后突出显示下面的所有内容并将其删除

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你没有指定你是否有一个标题行,但是你可以在这里找到你的确切要求。

Option Explicit

Sub DeleteRows()

    Dim ws As Worksheet, myVal As Double
    Dim Cell As Range, RngC As Range, CompRng As Range
    Set ws = ThisWorkbook.Worksheets(1)
    Set RngC = ws.Range("C:C")
    Set CompRng = ws.Range("M1")
    myVal = CDbl(CompRng.Value)

    For Each Cell In RngC
        If CDbl(Cell.Value) < myVal Then
            Cell.EntireRow.Delete
        End If
    Next Cell

End Sub