DIMENSION aXLSFiles(3) >aXLSFiles(1) = "C:\temp1.xls" >aXLSFiles(2) = "C:\temp2.xls" >aXLSFiles(3) = "C:\temp3.xls" >CombineExcelFiles(@aXLSFiles, "C:\XLSCombined.xls") > >FUNCTION CombineExcelFiles (taXLSFiles, tcDestination) > EXTERNAL ARRAY taXLSFiles > LOCAL loDestinationWrkBk as Excel.Application, ; > loWorkBook as EXCEL.Workbook, ; > loWorkSheet as EXCEL.Worksheet, ; > lnCounter, lcWorkSheetCaption > loDestinationWrkBk = NEWOBJECT("Excel.Application") > loDestinationWrkBk.ScreenUpdating = .F. > loDestinationWrkBk.DisplayAlerts = .F. > loDestinationWrkBk.Workbooks.Add() > lnCounter = 0 > FOR lnCounter = 1 TO ALEN(taXLSFiles) > IF FILE(taXLSFiles(lnCounter)) > lcWorkSheetCaption = JUSTSTEM(taXLSFiles(lnCounter)) > loWorkBook = loDestinationWrkBk.Workbooks.Open(taXLSFiles(lnCounter)) > loWorkBook.Worksheets(1).Copy(NULL, loDestinationWrkBk.Workbooks(1).Worksheets(loDestinationWrkBk.Workbooks(1).Worksheets.Count)) > loDestinationWrkBk.Workbooks(1).ActiveSheet.Name = RIGHT(ALLTRIM(CHRTRAN(lcWorkSheetCaption,CHRTRAN(lcWorkSheetCaption,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ","")," ")), 31) &&loWorkBook.Name > loWorkBook.Close(.F.) > ENDIF > ENDFOR > loDestinationWrkBk.Workbooks(1).WorkSheets(1).Delete > loDestinationWrkBk.Workbooks(1).SaveAs(tcDestination) > loDestinationWrkBk.ScreenUpdating = .T. > loDestinationWrkBk.DisplayAlerts = .T. > loDestinationWrkBk.Quit() >ENDFUNC