Я бы просто отфильтровал ваш диапазон, а затем скопировал отфильтрованные данные следующим образом:
Option Explicit
Sub CopyYes()
Dim LastRow As Long, Col As Long, Lrow As Long
Dim Source As Worksheet, Target As Worksheet
Dim arrws
Dim HandleIt As Variant
' Change worksheet designations as needed
Set Target = ThisWorkbook.Worksheets("Storage")
arrws = Array("Jan 19", "Feb 19") 'add all the worksheets you need to loop through
For Each Source In ThisWorkbook.Worksheets
HandleIt = Application.Match(Source.Name, arrws, 0)
If Not IsError(HandleIt) Then
With Source
.UsedRange.AutoFilter Field:=8, Criteria1:="yes"
LastRow = .Cells(.Rows.Count, "H").End(xlUp).Row
Col = .Cells(1, .Columns.Count).End(xlToLeft).Column
Lrow = Target.Cells(Target.Rows.Count, 1).End(xlUp).Row + 1
.Range("A2", .Cells(LastRow, Col)).SpecialCells(xlCellTypeVisible).Copy Target.Range("A" & Lrow)
End With
End If
Next Source
End Sub
Вы получите тот же результат всего за один раз, избегая петли.