ربما
Sub get_data()
Dim i%
Dim a
Dim r
r = 2
With [Sheet1!A1].CurrentRegion.Rows
.Range("k1:L1") = Array("head1", "head2")
.Range("A:D").AdvancedFilter 2, , .Range("k1:L1"), True
a = .Range("K1").CurrentRegion.Value2
For i = 2 To UBound(a)
.Range("K2").Value2 = a(i, 1): .Range("l2").Value2 = a(i, 2)
.Range("A:D").AdvancedFilter 1, .Range("K1:l2")
.Item("2:" & .Count).Columns("A:D").Copy Sheet2.Cells(r + 2, 1)
r = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
Next
.Parent.ShowAllData
.Range("k1:L1").CurrentRegion.ClearContents
End With
End Sub