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