Вот два варианта. Вторая подпрограмма будет быстрее, поскольку она будет скрывать все строки сразу, а также множество возможных итераций сокрытия строк. Чем больше количество строк будет скрыто, тем больше вы заметите экономии времени при использовании подхода Union
Option Explicit
Sub HideMe(FlagRange As Range, Flag As String)
FlagRange.EntireRow.Hidden = False
Dim FlagCell As Range
Application.ScreenUpdating = False
For Each FlagCell In FlagRange
FlagCell.EntireRow.Hidden = FlagCell = Flag 'Rows get hidden here
Next FlagCell
Application.ScreenUpdating = True
End Sub
Option Explicit
Sub HideMeUnion(FlagRange As Range, Flag As String)
FlagRange.EntireRow.Hidden = False
Dim FlagCell As Range, HideMe As Range
For Each FlagCell In FlagRange
If FlagCell = Flag Then
If HideMe Is Nothing Then
Set HideMe = FlagCell
Else
Set HideMe = Union(HideMe, FlagCell)
End If
End If
Next FlagCell
'rows gettin hidden here all at once
If Not HideMe Is Nothing Then HideMe.EntireRow.Hidden = True
End Sub