如何使用另一列中的值search子string,然后删除行Excel VBA

使用VBA,我想知道如何使用另一个工作表中的单词列表来search列A中的子string,如果find匹配,那么我想删除单元格。

目前它只会删除具有精确匹配的单元格。 我想不区分大小写,并find部分string。

Private Sub RemoveBusinessesButton_Click_OLD2() Dim Firstrow As Long Dim lastrow As Long Dim Lrow As Long Dim CalcMode As Long Dim ViewMode As Long With Application CalcMode = .Calculation .Calculation = xlCalculationManual .ScreenUpdating = False End With 'We use the ActiveSheet but you can replace this with 'Sheets("MySheet")if you want With ActiveSheet 'We select the sheet so we can change the window view .Select 'If you are in Page Break Preview Or Page Layout view go 'back to normal view, we do this for speed ViewMode = ActiveWindow.View ActiveWindow.View = xlNormalView 'Turn off Page Breaks, we do this for speed .DisplayPageBreaks = False 'Set the first and last row to loop through Firstrow = .UsedRange.Cells(1).Row lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row 'We loop from Lastrow to Firstrow (bottom to top) For Lrow = lastrow To Firstrow Step -1 'We check the values in the A column in this example With .Cells(Lrow, "A") If Not IsError(.Value) Then If Not IsError(Application.Match(.Value, _ Sheets("BUSINESS_KEYWORDS").Range("A1:A683"), 0)) Then .EntireRow.Delete 'This will delete each row with the Value "ron" 'in Column A, case sensitive. End If End With Next Lrow End With ActiveWindow.View = ViewMode With Application .ScreenUpdating = True .Calculation = CalcMode End With End Sub 

提前致谢

如果你想检查一个string是否包含另一个,而不是完全相同,那么使用这个函数:

 If InStr(1, StringToBeSearched, StringtoFind, vbTextCompare) > 0 Then Do xyz End If 

Instr返回一个整数,表示StringToFind出现在StringToBeSearched的字符,如果找不到则返回0