Como encontrar e destacar todas as ocorrências de várias seqüências de caracteres no ActiveSheet?
Eu já encontrei uma solução, mas o código seria muito longo. Então eu decidi procurar uma maneira de inserir todas as palavras que eu quero encontrar e destacar em um único método Find. Me deparei com algumas idéias de usar Arrays para fazer isso e usei esses três códigos para escrever o meu (esta, estaeesta), mas sou um novo usuário do VBA, portanto, meu código final tem um problema, que destaca apenas a última String da matriz. Eu acho que o problema é lógico, mas eu não sei o básico do VBA, então não tenho idéia de como corrigi-lo.
Meu código atual:
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
Por exemplo, com este código, posso encontrar e destacar todo o "Osnabrück", mas não destaca nenhum Hugo ou VW.