@Chemiker:
1. Ich benutze early binding um wenigstens etwas Kontrolle zu behalten. Dein Beispiel ist late binding.
2. Im Endeffekt mach ich auch genau das was du vorgeschlagens hast:
Delphi-Quellcode:
Data := VarArrayCreate([0, TDataSource.DataSet.RecordCount - 1, 0, i - 1], varVariant);
...
Data[iRow, iCol - i] := TDataSource.DataSet.Fields.Fields[iCol].AsDateTime;
Data wird dann direkt an Excel übergeben. Wenn ich jede Zelle einzeln nach Excel schreiben würde dauert das bei 10000 Werten mal locker 5 Minuten (abhänig von System). Das ist einfach inakzeptabel.
Hast du deinen Code mal mit Excel 2003 aufwärs probiert. Ich glaube da hast du auch ein Problem.
Gruß David