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を参照してください。

この例を参照してください

セル 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 に答える