删除单元格中不包含特定字符串的 Excel 行
Delete Excel Rows if They Do Not Contain a Specific String in a Cell
我有一个 excel 文件,其中在 3d (C) 列单元格上有一个文本。如果单元格字符串 不 包含:“(DELETED)”,我希望删除整行。我尝试了以下代码并且它有效但就语法而言,它需要进行编辑。
Sub sbDelete_Rows_IF_Cell_Contains_Specific_String()
Dim lRow As Long
Dim iCntr As Long
lRow = 5
For iCntr = lRow To 1 Step -1
celltxt = Cells(iCntr, 3).Value
If InStr(1, celltxt, "(DELETED)") Then
Else
Rows(iCntr).Delete
End If
Next
End Sub
如果脚本找到包含字符串“(DELETED)”的单元格,则程序不会执行任何操作。它将删除不包含此字符串的那些。语法不好,我想知道如何组合 "InStr" 和 "IF NOT" 函数。
正如 Tom 提到的那样,它 returns 是一个整数,所以这样做比使用 NOT
更容易
Sub test()
Dim lrow As Integer
lrow = Cells(Rows.Count, "A").End(xlUp).Row
For i = lrow To 1 Step -1
If InStr(1, Cells(i, 3), "(DELETED)") = 0 Then
Rows(i).EntireRow.Delete
End If
Next
End Sub
我有一个 excel 文件,其中在 3d (C) 列单元格上有一个文本。如果单元格字符串 不 包含:“(DELETED)”,我希望删除整行。我尝试了以下代码并且它有效但就语法而言,它需要进行编辑。
Sub sbDelete_Rows_IF_Cell_Contains_Specific_String()
Dim lRow As Long
Dim iCntr As Long
lRow = 5
For iCntr = lRow To 1 Step -1
celltxt = Cells(iCntr, 3).Value
If InStr(1, celltxt, "(DELETED)") Then
Else
Rows(iCntr).Delete
End If
Next
End Sub
如果脚本找到包含字符串“(DELETED)”的单元格,则程序不会执行任何操作。它将删除不包含此字符串的那些。语法不好,我想知道如何组合 "InStr" 和 "IF NOT" 函数。
正如 Tom 提到的那样,它 returns 是一个整数,所以这样做比使用 NOT
Sub test()
Dim lrow As Integer
lrow = Cells(Rows.Count, "A").End(xlUp).Row
For i = lrow To 1 Step -1
If InStr(1, Cells(i, 3), "(DELETED)") = 0 Then
Rows(i).EntireRow.Delete
End If
Next
End Sub