You can use:
Sub Generate_List2()
Dim i As Long
Dim oDic As Object
Dim vItems
Dim vCriteria
Dim vData
Application.ScreenUpdating = False
vCriteria = Sheets("Sheet1").Range("G1").Value2
Set oDic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet1")
vData = .Range("A2:C" & .Cells(.Rows.Count, "A").End(xlUp).Row).Value
End With
For i = 1 To UBound(vData, 1)
If vData(i, 1) = vCriteria Then
oDic.Item(CStr(vData(i, 2))) = Array(vData(i, 2), vData(i, 3))
End If
Next i
If oDic.Count Then
vItems = oDic.Items
With Sheets("Sheet1").Range("F7").Resize(oDic.Count, 2)
.Value = Application.Index(vItems, 0, 0)
If Not Sheets("Sheet1").Range("F8").Value = "" Then
.Sort key1:=.Cells(1), Header:=xlNo
End If
End With
End If
Application.ScreenUpdating = True
End Sub
Bookmarks