DIMENSION MyExcelFiles[5] MyExcelFiles[1] = "c:\XlsF1.XLS" MyExcelFiles[2] = "c:\XlsF2.XLS" MyExcelFiles[3] = "c:\XlsF3.XLS" MyExcelFiles[4] = "c:\XlsF4.XLS" MyExcelFiles[5] = "c:\XlsF5.XLS" FUNCTION CombineExcel(laExcelFiles, lcNewFileName) LOCAL oExcel AS Excel.Application LOCAL nXls, cActive, cNewBook oExcel = CREATEOBJECT("Excel.Application") oExcel.WorkBooks.New() oExcel.WorkBooks.SaveAs(lcNewFileName) cActive = oExcel.ActiveWorkbook.Name FOR nXLS = 1 TO ALEN(laExcelFiles,1) ** Because COPY TO XL produce only one sheet we must insert a new one here oExcel.ActiveWorkbook.Sheets.Add() oExcel.WorkBooks.Open(laExcelFiles[nXLS]) cNewBook = oExcel.ActiveWorkbook.Name oExcel.ActiveWorkbook.ActiveSheet.Cells.Select() oExcel.Selection.Copy() oExcel.Windows(oActive).Activate oExcel.ActiveWorkbook.ActiveSheet.Paste() oExcel.Windows(cNewBook).Activate oExcel.ActiveWorkbook.Close() oExcel.Windows(oActive).Activate NEXT oExcel.ActiveWorkbook.Save() oExcel.Quit() oExcel = NULL RELEASE oExcel RETURNNot tested
>>oExcel = CREATEOBJECT("Excel.Application") >>DIMENSION MyExcelFiles[5] >>MyExcelFiles[1] = "c:\XlsF1.XLS" >>MyExcelFiles[2] = "c:\XlsF2.XLS" >>MyExcelFiles[3] = "c:\XlsF3.XLS" >>MyExcelFiles[4] = "c:\XlsF4.XLS" >>MyExcelFiles[5] = "c:\XlsF5.XLS" >> >>oExcel.WorkBooks.Open(MyExcelFiles[1]) >>cActive = oExcel.ActiveWorkbook.Name >>FOR nXLS = 2 TO 5 >> ** Because COPY TO XL produce only one sheet we must insert a new one here >> oExcel.ActiveWorkbook.Sheets.Add() >> oExcel.WorkBooks.Open(MyExcelFiles[nXLS]) >> cNewBook = oExcel.ActiveWorkbook.Name >> oExcel.ActiveWorkbook.ActiveSheet.Cells.Select() >> oExcel.Selection.Copy() >> oExcel.Windows(oActive).Activate >> oExcel.ActiveWorkbook.ActiveSheet.Paste() >> oExcel.Windows(cNewBook).Activate >> oExcel.ActiveWorkbook.Close() >> oExcel.Windows(oActive).Activate >>NEXT >>oExcel.ActiveWorkbook.Save() >>oExcel.Quit() >>oExcel = NULL >>RELEASE oExcel >>>>Something like that