Ron,
Your code is very useful and it does do what I needed it to do;
however, I need to modify it to do 2 extra tasks and I'm new to VB
programming so I wondered if you could help.
1. I need the macro to crawl through directories. Maybe some sort of
recursion needs to be used? been so long since I've programmed

My
files are contained in varius sub directories, and how deep they go may
vary. I need the macro to crawl through the main directory I point it
to and capture all the files in all the sub directories.
2. These spreadsheets I'm usings have 25 rows to them and not all rows
contain data; however, I need to get all those rows with data onto my
consolidated sheet. The rows are from rows A4 to A28. and the row
length is A4:AK.
I'm playing with your code as I write this but I don't know how
successfull I'm going to be considering I'm so rusty with programming
in general, let alone I've never touched VB.
The code from your website that I'm using is:
Copy a Range from each workbook
This example will copy Range("A1:J1") from the first sheet in each
workbook.
Change the folder "C:\Data" 0r "\\ComputerName\YourFolder" to your
folder.
Sub Example1()
Dim basebook As Workbook
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim rnum As Long
Dim SourceRcount As Long
Dim FNames As String
Dim MyPath As String
Dim SaveDriveDir As String
SaveDriveDir = CurDir
MyPath = "C:\Data"
ChDrive MyPath
ChDir MyPath
FNames = Dir("*.xls")
If Len(FNames) = 0 Then
MsgBox "No files in the Directory"
ChDrive SaveDriveDir
ChDir SaveDriveDir
Exit Sub
End If
Application.ScreenUpdating = False
Set basebook = ThisWorkbook
basebook.Worksheets(1).Cells.Clear
'clear all cells on the first sheet
rnum = 1
Do While FNames <> ""
Set mybook = Workbooks.Open(FNames)
Set sourceRange = mybook.Worksheets(1).Range("A4:AK4")
SourceRcount = sourceRange.Rows.Count
Set destrange = basebook.Worksheets(1).Cells(rnum, "A")
basebook.Worksheets(1).Cells(rnum, "AL").Value = mybook.Name
' This will add the workbook name in column D if you want
sourceRange.Copy destrange
' Instead of this line you can use the code below to copy only
the values
' With sourceRange
' Set destrange = basebook.Worksheets(1).Cells(rnum,
"A"). _
' Resize(.Rows.Count,
..Columns.Count)
' End With
' destrange.Value = sourceRange.Value
mybook.Close False
rnum = rnum + SourceRcount
FNames = Dir()
Loop
ChDrive SaveDriveDir
ChDir SaveDriveDir
Application.ScreenUpdating = True
End Sub