loDestinationWrkBk.Save()
>>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, lnSheetCount, lcWorkSheetCaption > loDestinationWrkBk = NEWOBJECT("Excel.Application") > loDestinationWrkBk.ScreenUpdating = .F. > loDestinationWrkBk.DisplayAlerts = .F. > loDestinationWrkBk.Workbooks.Open(taXLSFiles(1,1)) > lnCounter = 0 > FOR EACH loWorkSheet IN loDestinationWrkBk.Workbooks(1).WorkSheets > lnCounter = lnCounter + 1 > IF lnCounter > 1 > loWorkSheet.Delete > ENDIF > ENDFOR > lcWorkSheetCaption = JUSTSTEM(taXLSFiles(1)) > loDestinationWrkBk.Workbooks(1).ActiveSheet.Name = RIGHT(ALLTRIM(CHRTRAN(lcWorkSheetCaption,CHRTRAN(lcWorkSheetCaption,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ","")," ")), 31) &&loWorkBook.Name > lnSheetCount = loDestinationWrkBk.Workbooks(1).Worksheets.Count > FOR lnCounter = 2 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.Save(tcDestination) > loDestinationWrkBk.ScreenUpdating = .T. > loDestinationWrkBk.DisplayAlerts = .T. > loDestinationWrkBk.Quit() >ENDFUNC