One way would be


Sub Hide2()
Dim rngToHide as Range, oneCell as Range

With Sheets("Unpaid Expenses")
    set rngToHide = .Range("A1")

    For each oneCell in .Range("S3:S10003")
        If Cell.Text = "x" Then
            set rngToHide = Application.Union(rngToHide, oneCell)
        End If
    Next oneCell
    
    Application.Intersect(rngToHide, .Range("S:S").EntireRow.Hidden = True
End With
End Sub