Я новичок в VBA. У меня есть столбец из 500 имен. На другом листе у меня есть более короткий столбец с именами, все найденные в более длинном.
Я пытаюсь пройти l oop через более длинный столбец и удалить все строки, в которых значение ячейки не найдено в более коротком. Мой код работает, но удаляет строки только с приращением, и для выполнения задачи его нужно запускать примерно 10 раз.
Я знаю, что циклы, включающие удаление, могут быть сложными. Любая помощь будет оценена!
Sub FindMatches()
Application.ScreenUpdating = False
Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long, bln As Boolean
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 1 To iRowL
If Not IsEmpty(Cells(iRow, 1)) Then
For iSheet = ActiveSheet.Index + 1 To Worksheets.Count
bln = False
var = Application.Match(Cells(iRow, 1).Value, Worksheets(iSheet).Columns(1), 0)
If Not IsError(var) Then
bln = True
Exit For
End If
Next iSheet
End If
If bln = False Then
Cells(iRow, 1).EntireRow.Delete
Else
Cells(iRow, 1).Font.Bold = True
End If
Next iRow
Application.ScreenUpdating = True
End Sub