Hi there.
I've been working with an excellent piece of code posted (reproduced below) on thespreadsheetguru.com, here:
https://www.thespreadsheetguru.com/the-code-vault/2014/4/21/find-all-instances-with-vba
This code searches a sheet for text and highlights the cells containing matches.
I'm trying to adapt it in the following ways:
1. How can I get this to go through ALL sheets in the active workbook (and not just the active sheet)?
2. Rather than hard-coding a single search criteria, how can I pass the contents of a range of cells (the terms contained in cells B2:B11 on a sheet entitled "Search Terms")?
Any help would be most appreciated.
Thanks!
I've been working with an excellent piece of code posted (reproduced below) on thespreadsheetguru.com, here:
https://www.thespreadsheetguru.com/the-code-vault/2014/4/21/find-all-instances-with-vba
This code searches a sheet for text and highlights the cells containing matches.
I'm trying to adapt it in the following ways:
1. How can I get this to go through ALL sheets in the active workbook (and not just the active sheet)?
2. Rather than hard-coding a single search criteria, how can I pass the contents of a range of cells (the terms contained in cells B2:B11 on a sheet entitled "Search Terms")?
Any help would be most appreciated.
Thanks!
Code:
Sub HighlightFindValues()
'PURPOSE: Highlight all cells containing a specified values
'SOURCE: www.TheSpreadsheetGuru.com
Dim fnd As String, FirstFound As String
Dim FoundCell As Range, rng As Range
Dim myRange As Range, LastCell As Range
'What value do you want to find (must be in string form)?
fnd = "Kentucky"
Set myRange = ActiveSheet.UsedRange
Set LastCell = myRange.Cells(myRange.Cells.Count)
Set FoundCell = myRange.Find(what:=fnd, after:=LastCell)
'Test to see if anything was found
If Not FoundCell Is Nothing Then
FirstFound = FoundCell.Address
Else
GoTo NothingFound
End If
Set rng = FoundCell
'Loop until cycled through all unique finds
Do Until FoundCell Is Nothing
'Find next cell with fnd value
Set FoundCell = myRange.FindNext(after:=FoundCell)
'Add found cell to rng range variable
Set rng = Union(rng, FoundCell)
'Test to see if cycled through to first found cell
If FoundCell.Address = FirstFound Then Exit Do
Loop
'Highlight Found cells yellow
rng.Interior.Color = RGB(255, 255, 0)
Exit Sub
'Error Handler
NothingFound:
MsgBox "No values were found in this worksheet"
End Sub