Как найти и выделить все вхождения нескольких строк в ActiveSheet?
Я уже нашел решение, но код был бы слишком длинным. Затем я решил найти способ вставить все слова, которые я хочу найти, и выделить их в одном методе поиска. Я натолкнулся на некоторые идеи использования массивов для этого и использовал эти 3 кода для написания моего (этот, этот, а такжеэтот) но я новый пользователь VBA, поэтому у моего финального кода есть проблема, он выделяет только последнюю строку массива. Я думаю, что проблема в логике, но я не знаю основ VBA, поэтому понятия не имею, как ее исправить.
Мой фактический код:
Sub Sample()
Dim fnd As String
Dim MyAr
Dim i As Long
Dim rng As Range, FoundCell As Range, LastCell As Range, myRange As Range
Set myRange = ActiveSheet.UsedRange
Set LastCell = myRange.Cells(myRange.Cells.Count)
fnd = "hugo/vw/osnabrück"
MyAr = Split(fnd, "/")
For i = LBound(MyAr) To UBound(MyAr)
Set FoundCell = myRange.Find(what:=MyAr(i), after:=LastCell)
If Not FoundCell Is Nothing Then
FirstFound = FoundCell.Address
End If
Set rng = FoundCell
Do Until FoundCell Is Nothing
Set FoundCell = myRange.FindNext(after:=FoundCell)
Set rng = Union(rng, FoundCell)
If FoundCell.Address = FirstFound Then Exit Do
Loop
Next i
If Not rng Is Nothing Then
rng.EntireRow.Interior.ColorIndex = 3
End If
End Sub
Например, с помощью этого кода я могу найти и выделить весь «Оснабрюк», но он не выделяет ни Hugo, ни VW.