Макрос excel vba, который я создал, проходит через весь столбец и ищет каждое значение в столбце по сравнению с другим столбцом, найденным на другом листе. У меня есть столбец T / F, где я отмечаю "T", если он найден, и "F", если он не найден. Тем не менее, я чувствую, что способ, которым я это делаю, может быть не очень эффективным, так как макросу требуется около 30 минут, чтобы просмотреть 31 000 строк значений для поиска в другом столбце с приблизительно 27 000 значений.
Для простой иллюстрации я включил несколько изображений, объясняющих, что делает макрос.

Первоначально столбец T / F будет пустым. Только после выполнения макроса он будет заполнен. Я перебираю каждую строку в столбце A и пытаюсь найти значение для SearchCol на следующем рисунке.

Вот код VBA, который я сейчас использую.
Sub CheckIfValuesExist()
Dim ActiveWS As Worksheet, WS2 As Worksheet
Dim ValueColLetter As String, SearchColLetter As String, TFColLetter As String
Dim LastRow As Long, i As Long
Dim target As Variant, rng As Range
Set ActiveWS = ActiveWorkbook.Worksheets(1)
Set WS2 = ActiveWorkbook.Worksheets(2)
ValueColLetter = "A"
SearchColLetter = "A"
TFColLetter = "B"
LastRow = ActiveWS.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas).Row
For i = 2 To LastRow
target = ActiveWS.Range(ValueColLetter & i).Value
If target <> "" Then
With WS2.Range(SearchColLetter & ":" & SearchColLetter) 'searches all of column A
Set rng = .Find(What:=target, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
ActiveWS.Range(TFColLetter & i).Value = "T" 'value found
Else
ActiveWS.Range(TFColLetter & i).Value = "F" 'value not found
End If
End With
End If
Next i
End Sub
Макрос работает как задумано, я просто нахожу его медленным. Есть ли лучший способ сделать то же самое, но более быстрым способом?