4

如果我在 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
Next
4

1 回答 1

14

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

如果您正在使用布尔值,那么您可能希望看到Trying to Delete Rows with False Value in my Range

看这个例子

我假设 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

快照

在此处输入图像描述

于 2012-07-03T18:57:34.113 回答