DIMENSION aryFiles(3) >aryFiles(1) = "C:\Excel1.xls" >aryFiles(2) = "C:\Excel2.xls" >aryFiles(3) = "C:\Excel3.xls" > >CombineExcelFiles(@aryFiles, "C:\ExcelCombined.xls") > >FUNCTION CombineExcelFiles (taXLSFiles, tcDestination) > EXTERNAL ARRAY taXLSFiles > LOCAL loDestinationWrkBk as Excel.Application, ; loSourceWrkBk, lnCounter, ; lnSheetCount, loWorkSheet, lcValidChars lcValidChars = ; "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " > 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 > > lnSheetCount = loDestinationWrkBk.Workbooks(1).Worksheets.Count > FOR lnCounter = 2 TO ALEN(taXLSFiles,1) > IF FILE(taXLSFiles(lnCounter, 1)) > loWorkBook = ; loDestinationWrkBk.Workbooks.Open(taXLSFiles(lnCounter, 1)) > loWorkBook.Worksheets(1).Copy(NULL, ; loDestinationWrkBk.Workbooks(1).Worksheets(loDestinationWrkBk.Workbooks(1).Worksheets.Count)) > loDestinationWrkBk.Workbooks(1).ActiveSheet.Name = ; RIGHT(ALLTRIM(CHRTRAN(taXLSFiles(lnCounter, 2), ; CHRTRAN(taXLSFiles(lnCounter, 2),lcValidChars,"")," ")), 31) &&loWorkBook.Name > loWorkBook.Close(.F.) > ENDIF > ENDFOR > > loDestinationWrkBk.Save() > loDestinationWrkBk.ScreenUpdating = .T. > loDestinationWrkBk.DisplayAlerts = .T. > loDestinationWrkBk.Quit() > > FOR lnCounter = 2 TO ALEN(taXLSFiles,1) > IF FILE(taXLSFiles(lnCounter, 1)) > ERASE (taXLSFiles(lnCounter, 1)) > ENDIF > ENDFOR >ENDFUNC>