我有约100行,约有10列。如果列B(或2)中的单元格包含特定的字符串“ XYZ”(例如),我想删除整行
如果字符串以开头出现,则下面的代码可以完美地工作。 但我也希望它能在以下情况下工作:
如果存在该字符串,则应删除整行。
Sub DeleteRowBasedOnCriteria()
Dim RowToTest As Long
Sheets("Jira").Select
For RowToTest = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
With Cells(RowToTest, 2)
If .Value = "XYZ" _
Then _
Rows(RowToTest).EntireRow.Delete
End With
Next RowToTest
End Sub
该功能应与XYZ匹配,而与单元格中的位置无关,并删除整行。
答案 0 :(得分:2)
将Like运算符与通配符一起使用(可能也具有案例限定符)。
不过,自动筛选可能是更好的选择。
Sub DeleteRowBasedOnCriteria()
Dim RowToTest As Long
Sheets("Jira").Select
For RowToTest = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1
With Cells(RowToTest, 2)
If .Value Like "*XYZ*" Then Rows(RowToTest).EntireRow.Delete
'If ucase(.Value) Like "*XYZ*" Then Rows(RowToTest).EntireRow.Delete CASE INSENSITIVE
End With
Next RowToTest
End Sub
答案 1 :(得分:1)
除了Like
运算符外,您还可以使用InStr function:
If InStr(1, "XYZ", .Value, vbTextCompare) > 0 Then
您可以使用...
vbTextCompare
以使其不区分大小写。vbBinaryCompare
使其区分大小写。