Possibly...
Sub Copy_Matching_Criteria()
Dim x As Long
Dim Criterion As Variant
Dim c As Range
Dim firstAddress As String
'1) goes to input worksheet 2
For x = 2 To Worksheets("Input_Worksheet2").UsedRange.Rows.Count
'1a) copies the first row to the output worksheet
Worksheets("Input_Worksheet2").Rows(x).Copy _
Worksheets("Output").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
'1b) saves the value of the first cell (in column A) in a temp variable "criterion"
Criterion = Worksheets("Output").Cells(Rows.Count, 1).End(xlUp).Value
'2) goes to input worksheet 1
With Worksheets("Input_Worksheet1").Columns(1)
'2b_?) where the first cell of the row is equal to the saved variable "criterion"
Set c = .Find(Criterion, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
'2b) copies all rows to the output worksheet
c.EntireRow.Copy _
Worksheets("Output").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'3) Starts over at (1) with the 2nd row of that input worksheet
Next x
End Sub
Bookmarks