2017-08-15 40 views
0

使用VBA,我想知道如何使用另一個工作表中的單詞列表搜索列A中的子字符串,如果匹配是發現我然後想要刪除該單元格。如何使用另一列中的值搜索子字符串,然後刪除行,Excel VBA

目前它只會刪除具有精確匹配的單元格。我想不區分大小寫並找到部分字符串。

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 

由於提前

回答

1

如果你想檢查一個字符串中包含的另一種而不是完全一樣,其他則使用此功能:

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

Instr返回表示整數StringToFind出現在StringToBeSearched中的字符,如果找不到,則返回0

相關問題