[VBA]Private Sub cmdbutton1_Click()
Dim Tgt As Worksheet
Dim Source As Range
Dim wbSource As Workbook
Dim cel As Range
Dim Rng As Range
Dim c As Range
Dim i As Long

Application.ScreenUpdating = False
Set Tgt = ActiveSheet
Set wbSource = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0)
Set Source = wbSource.Sheets(1).Columns(1)
With Tgt
.Activate
'clear old data
Range(.Cells(21, 2), .Cells(25, 3)).ClearContents
Range(.Cells(21, 5), .Cells(25, 5)).ClearContents

' For extract the data, change the Range value to fulfill the data structure
If Range("A21").Value = 001 Then
Range("A21").Value = "Staff 001"
End If
If Range("A22").Value = 002 Then
Range("A22").Value = "Staff 002"
End If
If Range("A23").Value = 003 Then
Range("A23").Value = "Staff 003"
End If


'Loop through names in column A
For Each cel In Range(.Cells(21, 1), .Cells(Rows.Count, 1).End(xlUp))
If Not cel = "" Then
Set c = Source.Find(cel)
Set Rng = Range(c.Offset(1), c.Offset(1).End(xlDown))
For i = 1 To 1
cel.Offset(, i) = Application.Average(Rng.Offset(, i + 6)) / 1000
Next
For i = 2 To 2
cel.Offset(, i) = Application.Average(Rng.Offset(, i + 6))
Next
For i = 4 To 4
cel.Offset(, i) = Application.Average(Rng.Offset(, i + 5))
Next
End If
Next
End With

'Refill the original range value
Range("A21").Value = 001
Range("A22").Value = 002
Range("A23").Value = 003

wbSource.Close False
Application.ScreenUpdating = True
End Sub[/VBA]

The above vba command (help by mdmackillop)which is extract the data from the Other workbooks. It looks for the "Staff 001", "Staff 002"...these parameters to transfer the data to the worksheet. But, the "Staff 001" data must appear twice in each workbooks. If i use the above command, i only can extract the FIRST "Staff 001" average data. But SECOND "Staff 001" average data cannot extract. I know it may be use FindNext method to do this but i am not sure how to write it.

P.S. I spend much time and try my best on this part but i can't write the unsucessful command . Hope all of you can help me!!