Forum: Programmieren allgemein
Delphi
by Jumpy,
19. Apr 2018
Das könnte daran liegen, dass das Stringrid 0-basiert und Excel 1-basiert seine Zeilen und Spalten zählt. Betrifft dann diesen Bereich:
Range := Worksheet.Range;
if not VarIsNull(Range) then
begin
//Daten aus Grid holen
Data := VarArrayCreate(, varVariant);
for Row := 0 to Pred(MaxRow) do
begin
Forum: Programmieren allgemein
Delphi
by Jumpy,
18. Apr 2018
Was mir mMn auf die Schnelle aufgefallen ist:
Sowohl im Form.Create als auch in StringgridToXLS öffnest du jeweils die Datei. Einmal müsste doch eigentlich reichen?
Edit: Was man auch immer mal versuchen könnte: Visible und DisplayAlerts auf True setzen, dann sieht man wenigstens, was den Excel zu mecker hat.
Forum: Programmieren allgemein
Delphi
by Jumpy,
18. Apr 2018
Zeig doch mal etwas mehr Code. Vielleicht steht da jetzt noch was mit deiner alten Variante vermischt.
Forum: Programmieren allgemein
Delphi
by Jumpy,
17. Apr 2018
In StringgridToXLS machst du das Workbook auf, schreibst den Kram rein und machst es wieder zu wenn du XLApp.Quit aufrufst. Und du hast nirgendwo gespeichert.
Es hilft nicht in der Aufrufendene Prozedur zu speichern, dann ist schon alles wieder weg!
Deine Ganze Logik ist irgendwo komisch.
Du solltest in der Prozedur in die vom Einlesen noch geöffnete Excel-Datei schreiben und nicht jedes...
Forum: Programmieren allgemein
Delphi
by Jumpy,
17. Apr 2018
if not VarIsNull(Workbook) then
Workbook ist mMn an der Stelle Null weil nicht zugewiesen. Weiter oben hätte es wohl heißen müssen:
Workbook:=XLApp.Workbooks.Open(AXLSFile);
statt nur
XLApp.Workbooks.Open(AXLSFile);