>CLOSE all >#define CRLF chr(13) + chr(10) >USE koko >local lnMax >lnMax = 18 >local array laXLSFiles[lnMax] > >FOR i=1 TO lnMax > COPY FOR numbers=i TO ("sheet" + TRANSFORM(i)) TYPE XL5 > laXLSFiles[m.i] = sys(5) + curdir() + 'sheet' + transform(m.i) + 'xls' >ENDFOR > >=CombineExcelFiles(laXLSFiles, 'c:\dept\amman.xls')&& not work > >function CombineExcelFiles (taXLSFiles, tcDestination, tlDeleteOriginal) >external array taXLSFiles >local loExcel as Excel.application, ; > loWorkBook as Excel.Worksbook, ; > loWorkSheet , ; > lnCounter, lcWorkSheetCaption, lcError, ; > lcValidChars > >lcError = "" > >try > lcValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 " > loExcel = newobject("Excel.Application") > with loExcel > .ScreenUpdating = .f. > .DisplayAlerts = .f. > .WorkBooks.add() > lnCounter = 0 > >** Delete all existing worksheets except 1 > for each loWorkSheet in .WorkBooks(1).WorkSheets > lnCounter = m.lnCounter + 1 > if m.lnCounter > 1 > loWorkSheet.delete > endif > endfor > > for lnCounter = 1 to alen(taXLSFiles,1) > if file(taXLSFiles[m.lnCounter]) > lcWorkSheetCaption = juststem(taXLSFiles[m.lnCounter]) > loWorkBook = .WorkBooks.open(taXLSFiles[m.lnCounter]) > loWorkBook.WorkSheets(1).copy(null, ; > .WorkBooks(1).WorkSheets(.WorkBooks(1).WorkSheets.count)) > .WorkBooks(1).ActiveSheet.name = ; > right(alltrim(chrtran(m.lcWorkSheetCaption, ; > chrtran(m.lcWorkSheetCaption,m.lcValidChars,"")," ")), 31) &&loWorkBook.Name > loWorkBook.close(.f.) && Don't save changes > if m.tlDeleteOriginal > erase (taXLSFiles[m.lnCounter]) > endif > endif > endfor >** Remove the first original sheet from (Sheet1) > .WorkBooks(1).WorkSheets(1).delete > > .WorkBooks(1).saveas(m.tcDestination) > .ScreenUpdating = .t. > .DisplayAlerts = .t. > endwith > >catch to loError > lcError = Log_Error(m.loError) >finally > if vartype(m.loExcel) = 'O' > with loExcel > .ScreenUpdating = .t. > .DisplayAlerts = .t. > .quit() > endwith > endif >endtry > >return m.lcError >endfunc > > >********************* >function Log_Error >lparameters toError >local lcError, lcVars > >lcError = [Error: ] + transform(m.toError.errorno) + CRLF + ; > [LineNo: ] + transform(m.toError.lineno) + CRLF + ; > [Message: ] + m.toError.message + CRLF + ; > [Procedure: ] + m.toError.procedure + CRLF + ; > [Details: ] + m.toError.details + CRLF + ; > [StackLevel: ] + transform(m.toError.stacklevel) + ; > iif(_vfp.startmode = 0, CRLF + [LineContents: ] + m.toError.linecontents, '') > > >return m.lcError >*The three chief virtues of a programmer >>>Add at the very top of your program
>>#define CRLF chr(13) + chr(10) >>>>