Excel 基于部分文本删除行

Excel 基于部分文本删除行,excel,vba,Excel,Vba,如果在A列中找到文本“femplant”,我将尝试删除整行 文本是由“$”链接的句子的一部分。我需要分析“$”之前的单元格内容,看看它是否与“fempillt”匹配,然后删除该行 这就是我目前所拥有的 Dim cell As Excel.Range RowCount = DataSheet.UsedRange.Rows.Count Set col = DataSheet.Range("A1:A" & RowCount) Dim SheetName As String Dim Parsed

如果在A列中找到文本“femplant”,我将尝试删除整行

文本是由“$”链接的句子的一部分。我需要分析“$”之前的单元格内容,看看它是否与“fempillt”匹配,然后删除该行

这就是我目前所拥有的

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

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

如果使用的是布尔值,则可能需要查看

看这个例子

我假设单元格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
快照


我遇到的主要问题是,我无法使它从底部循环。我设置它的方式是从顶部循环,而不是删除连续的行。purrfect。谢谢回答得好。更快的方法。