如果它们不包含单元格中的特定字符串,则删除Excel行

时间:2015-06-01 11:27:27

标签: string excel-vba delete-row vba excel

我有一个excel文件,在3d(C)列单元格中有一个文本。如果单元格字符串包含:“(DELETED)”,我希望删除整行。我尝试了以下代码并且它可以工作,但就语法而言,它需要进行编辑。

Print Screen of the Excel file

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”函数。

1 个答案:

答案 0 :(得分:2)

正如汤姆所说,它会返回一个整数,所以做这样的事情会更容易,而不是使用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

Failed to open file 'android.resource://com.brodos.kiosk.de.brodosnet_21_5/2131099648'. (No such file or directory)