Hi again Thomas!
That does speed it up a little, but I've still got about 10 mins to create a 150,000 record workbook spread over about 50 sheets.
Have a look at my reply to Tamar.
(This all reminds me of the old old OLE days)
>Hi David,
>>oApp.workbooks(1).sheets(1).cell(x, y) = {somevalue}
>
>With oApp.workbooks(1).sheets(1)
> .cell(x, y) = {somevalue}
>endwith
>
>or
>loSheet = oApp.workbooks(1).sheets(1)
>loSheet.cell(x, y) = {somevalue}
>
>should help a bit if many cells are to be filled.
>The marshalling across COM can kill you there.
>
>Calling a vfp dll from excel (in process then)
>might help also a bit. If you really need
>programmatic filling, perhaps generating a excel
>vba script (with the correct values) from vfp
>and then running that script directly from excel
>might be faster - do a small benchmark yourself <g>...
>
>HTH
>
>thomas
>
>>Doing it this way gives me the control I need over multiple sheets but is MUCH slower than COPY TO {ddd} TYPE XLS.
>>For example, are their some properties of the excel object I can set to speed things up?