根据条件删除行

use*_*091 4 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
Run Code Online (Sandbox Code Playgroud)

下一个

Sid*_*out 13

您可以使用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
Run Code Online (Sandbox Code Playgroud)

快照

在此输入图像描述