lcFileName = "Your XLS output file" ** Assume list of tables is in a cursor ** Use the first one to create the XL spreadsheet ** Then SCAN through rest to add sheets SELECT myTableCursor GO TOP USE (myTableCursor.table_name) IN 0 ALIAS sendtoXL SELECT sendtoXL COPY TO (lcFileName) TYPE xl5 oXL = Createobject("Excel.Application") oXL.DisplayAlerts = .F. oXL.Application.WorkBooks.Open(lcFileName) SELECT myTableCursor GOTO 2 SCAN REST USE (myTableCursor.table_name) IN SELECT('sendtoXL') ALIAS sendtoXL SELECT sendtoXL Copy To tempXL Type xl5 Attach_WSheet(oXL, lcFileName, "tempXL.xls", myTableCursor.table_name, 1) ENDSCAN oXL.Save() oXL.Quit oXL = .Null. FUNCTION Attach_WSheet(toXLObject, tcFileMoveTo, tcFileToMove, tcSheetName, tnSheetPos) Local ; lcFile As String, lcFile1Name As String, lcFile2 As String lcFile = Juststem(tcFileToMove) lcFile1Name = Justfname(tcFileToMove) lcFile2 = Justfname(tcFileMoveTo) + ".xls" toXLObject.Application.WorkBooks.Open(tcFileToMove) toXLObject.Windows(lcFile1Name).Activate toXLObject.Sheets(lcFile).Move(toXLObject.Application.WorkBooks(lcFile2).Sheets(tnSheetPos)) oDS = toXLObject.Application.ActiveSheet oDS.Name = tcSheetName ENDFUNC