That's fine, and if you need those rows to be selected based on criteria (Dog, Cat, whatever) as part of a larger string value in column A, this would have done that:
Sub Test3()
With Application
.ScreenUpdating = False
Cells.ClearFormats
Dim Valz, i, cell As Range, RangeToFormat As Range
Valz = Array("Dog", "Cat")
For i = LBound(Valz) To UBound(Valz)
For Each cell In Columns(1).SpecialCells(2)
If InStr(cell.Value, Valz(i)) > 0 Then
If RangeToFormat Is Nothing Then
Set RangeToFormat = Range(cell, cell.Offset(0, 6))
Else
Set RangeToFormat = .Union(RangeToFormat, Range(cell, cell.Offset(0, 6)))
End If: End If: Next cell: Next i
On Error Resume Next
RangeToFormat.Select
Err.Clear
.ScreenUpdating = True
End With
End Sub