根据条件删除行

时间:2012-07-03 18:43:33

标签: excel vba excel-vba

我希望有人可以帮助解决这段代码。如果我在A栏中找到文本'FemImplant',我想删除整行。棘手的部分是这个文本是由'$'链接的句子的一部分。所以我需要代码在'$'之前解析单元格内容,看看它是否与'FemImplant'匹配并删除该行。这是我到目前为止所做的事情,但是它还没有工作。

Dim cell As Excel.Range
 RowCount = DataSheet.UsedRange.Rows.Count
 Set col = DataSheet.Range("A1:A" & RowCount)
 Dim SheetName As String
 Dim ParsedCell() As String

 For Each cell In col

 ParsedCell = cell.Value.Split("$")
 SheetName = ParsedCell(0)

 If SheetName = "FemImplant" Then
 cell.EntireRow.Delete Shift:=xlUp

 End If

下一步

1 个答案:

答案 0 :(得分:12)

您可以使用AutoFilter删除包含文本FemImplant$的行。这种方法比循环要快得多。

参见此示例

我假设Cell A1有标题。

Sub Sample()
    Dim ws As Worksheet
    Dim strSearch As String
    Dim lRow As Long

    strSearch = "FemImplant$"

    Set ws = Sheets("Sheet1")

    With ws
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row

        '~~> Remove any filters
        .AutoFilterMode = False

        '~~> Filter, offset(to exclude headers) and delete visible rows
        With .Range("A1:A" & lRow)
          .AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*"
          .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        End With

        '~~> Remove any filters
        .AutoFilterMode = False
    End With
End Sub

<强>快照

enter image description here