Check this code:
Dim array1 As Variant
array1 = Array("... cats ...", " ...Dogs ...", " ...Cats and dogs ...", "another text")
Dim array2 As Variant
array2 = Array()
ReDim array2(LBound(array1) To UBound(array1))
Dim i As Integer: i = LBound(array2) - 1
Dim t
For Each t In array1
If InStr(1, t, "cats", vbTextCompare) > 0 Or _
InStr(1, t, "dogs", vbTextCompare) > 0 Then
i = i + 1
array2(i) = t
End If
Next
If i >= LBound(array2) Then
ReDim Preserve array2(LBound(array2) To i)
Else
array2 = Array()
End If
Wait for more, maybe better solutions.