Я бы хотел немного переписать ответ keytarhero:
Sub CopyWorkbook()
Dim sh as Worksheet, wb as workbook
Set wb = workbooks("Target workbook")
For Each sh in workbooks("source workbook").Worksheets
sh.Copy After:=wb.Sheets(wb.sheets.count)
Next sh
End Sub
Редактировать: Вы также можете создать массив имен листов и скопировать его сразу.
Workbooks("source workbook").Worksheets(Array("sheet1","sheet2")).Copy _
After:=wb.Sheets(wb.sheets.count)
Примечание : копирование листа из XLS?к XLS приведет к ошибке.Наоборот работает отлично (XLS в XLSX)