Clear All * Create a test cursor Create Cursor testcursor (Rcno i,cType c(10), nType i, dType d) Rand(-1) For ix = 1 To 200000 && Create 200000 recs cursor Insert Into testcursor Values ; (Recco()+1,Sys(2015), Int(Rand()*1000), Date()-Int(Rand()*100)) Endfor Set Safety Off Wait Window Nowait "Pls wait sending data to Excel..." lnTotal = Reccount() oExcel = Createobject("Excel.application") With oExcel .Visible = .T. oMasterWorkBook = .workbooks.Add && Add a new workbook lnMaxRows = .ActiveWorkBook.ActiveSheet.Rows.Count && Get max row count lnNeededSheets = Ceiling( lnTotal / (lnMaxRows - 1) ) && 1 row header lnCurrentSheetCount = .sheets.Count If lnNeededSheets > lnCurrentSheetCount .sheets.Add(,.sheets(lnCurrentSheetCount),; lnNeededSheets - lnCurrentSheetCount) && Add new sheets after old ones Endif Endwith With oMasterWorkBook For ix = 1 To lnNeededSheets .sheets.Item(ix).Name = "Page "+Padl(ix,3,"0") Endfor lcExportName = Sys(5)+Curdir()+Sys(2015)+".dbf" For ix = 1 To lnNeededSheets lnStart = ( ix - 1 ) * (lnMaxRows-1) + 1 Copy To (lcExportName) ; for Between(Recno(),lnStart,lnStart+lnMaxRows-2) ; type Fox2x oSourceWorkBook = oExcel.workbooks.Open(lcExportName) .WorkSheets(ix).Activate oSourceWorkBook.WorkSheets(1).UsedRange.Copy(; .WorkSheets(ix).Range('A1')) oSourceWorkBook.Close(.F.) && Close w/o save Erase (lcExportName) Endfor .WorkSheets(1).Activate Endwith Wait ClearPS:FoxyClasses' dbf2Excel also use another transfer method viaADO which can complete the process even if the data had memo fields too.