[vba]Sub CombinefilesCopyDataSheet()

Dim Wkb1 As Workbook, wb As Workbook
Dim ws1 As Worksheet, WsA As Worksheet

Set Wkb1 = Workbooks("Destination.xls") 'change this to your desintation file name
Set ws1 = Wkb1.Sheets(1) '1st sheet in destination

For Each wb In Workbooks

If wb.Name <> "PERSONAL.XLS" And wb.Name <> Wkb1.Name Then
wb.Activate
Set WsA = wb.Sheets("Data")
'the below range is for the range of data on Sheets("Data") which goes to DESTINATION.xls
WsA.Range("A1:C200").Copy 'change this to your range
With ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
.PasteSpecial (xlValues)
.PasteSpecial (xlFormats)
End With

Application.DisplayAlerts = False
wb.Close 'this closes the file just copied.
End If
Next wb

Wkb1.Activate



End Sub
[/vba]
This code is easily modified as noted. Open all of the other worksheets which have a "Data" sheet to copy from.

Assuming the you have the same size of data coming from each of those sheets, you can just specify the range where noted.

It will copy the range of data you specify to the workbook you specify(In my code it is "Destination.xls")
beginning in the 1st available row and continuing through the open workbooks.

Only have open the destination file (where this code would go) and the source files.

Maybe that will help you out?