Вы можете сделать что-то вроде этого (используя Match, чтобы найти интересующие строки):
Sub Macro1()
Dim wb As Workbook, fullPath
Dim ws As Worksheet, wsDest As Worksheet
Dim m As Variant, myValue As Variant
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "Excel Files", "*.xlsx; *.xlsm; *.xls; *.xlsb", 1
.Show
fullPath = .SelectedItems.Item(1)
End With
If InStr(fullPath, ".xls") = 0 Then Exit Sub
Set wb = Workbooks.Open(fullPath) '<< get a direct reference
Set ws = wb.Sheets(1)
Set wsDest = ThisWorkbook.Sheets("Sheet2")
myValue = InputBox("Enter Value to lookup")
m = Application.Match(myValue, ws.Columns("A"), 0)
Do While Not IsError(m)
'got a match - copy row
ws.Rows(m).Copy _
wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Offset(1, 0)
m = Application.Match(myValue, _
ws.Range(ws.Cells(m + 1, 1), ws.Cells(ws.Rows.Count, 1)), 0)
Loop
End Sub