@Chemiker: Ich müsste dann wahrscheinlich durch jede Zelle in den Zahlenspalten "loopen" und neu schreiben, das würde sicher gehen.
Das Format
muss für jede Zelle gesetzt werden und nicht nur für A1.
Wenn sich alle Daten "irgendwo" zwischen A1 und F97 befinden, dann könnte auch ein
ExcelApp.Range['A1','F97'].EntireColumn.NumberFormat:= '#.###,00';
reichen.
ExcelApp.Range['A1','F97']
entspricht 6 Spalten und 97 Zeilen.
Du könntest es auch mal in der Form versuchen:
ExcelApp.Range['A1',Format('%s%d',[Chr(StringGrid.Cols + 64),StringGrid.Rows])].EntireColumn.NumberFormat := '#.###,00';
Range ist der Bereich, für den das Format gelten soll. Wenn der Bereich mit
ExcelApp.Range['A1','A1']
angegeben wird, dann gilt er auch nur für A1, also die erste Zelle oben links.