首页 > 技术文章 > 快速删除满足某些特定条件的行

bmrs 2017-10-11 16:07 原文

思路:利用Range.SpecialCells()方法定位到满足特定条件的range,然后删除这些range所在的行.

 

代码如下:

'删除特定的行的代码
Sub Rows_To_delete()

    Dim Rng1 As Range, Rng2 As Range
    Set Rng1 = Range("D15:D23")                                     'Rng1: 可能要删除行的区域,一般选单独的一列
    
    
    '*********************
    '注意:使用on error resume next的原因是
    'SpecialCells可能不返回range(当没有满足条件的range时)
    '此时会报1004的runtime error,故需要捕获和处理该error
    '*********************
    On Error Resume Next
    Set Rng2 = Rng1.SpecialCells(xlCellTypeConstants, 2)        'Rng2:  Rng1区域中,满足特定条件的区域(如本例中是 值为常量文本的区域)
    If Err.Number > 0 Then
        Debug.Print "err.num = " & Err.Number
        Debug.Print Err.Description
    Else
        Rng2.EntireRow.Delete                                            '删除这些区域所在的行
    End If
    On Error GoTo 0

End Sub

  

推荐阅读