如何查找和突出显示在ActiveSheet中多个string的所有事件?

我已经find了一个解决scheme,但是代码太长了。 然后,我决定search一种插入所有我想查找的单词的方法,并将其突出显示为一个查找方法。 我遇到了使用数组的一些想法,并使用这3个代码来写我的( 这个 , 这个和这个 ),但我是VBA的新用户,所以我最终的代码有一个问题,它突出了最后一个string数组。 我认为问题是逻辑,但我不知道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 

例如,使用此代码,我可以find并突出显示所有“Osnabrück”,但不会突出显示任何Hugo或VW。

这是因为你只在代码的最后一次做高亮,而你arrays中的最后一个select恰好是osnabruck。

你需要移动

 If Not rng Is Nothing Then rng.EntireRow.Interior.ColorIndex = 3 End If 

就在之前

 next i 

所以它会做,如果数组中的每个元素。