Hallo,
befürchte, Du bist auf dem falschen Dampfer:
Range['A1:B4'].Select gehört eher zu einem ExcelWorkSheet.
Itmes 1.1 wird nicht gehen, allenfalls 1,1.
Probiere mal bitte, ob Du damit weiterkommst:
Delphi-Quellcode:
Uses ..., Excel97, ... ;
...
Var
ea : TExcelApplication;
ewb : TExcelWorkbook;
ews1 : TExcelWorkSheet;
begin
// Variabeln für die Verbindung zu Excel initialisieren
ea := TExcelApplication.Create(Self);
ewb := TExcelWorkbook.Create(Self);
ews1 := TExcelWorksheet.Create(Self);
// Verbindungsart zu Excel festlegen.
ea.ConnectKind := ckNewInstance;
ewb.ConnectKind := ckNewInstance;
ews1.ConnectKind := ckNewInstance;
// Diese ID wird zur Komunikation mit Excel benötigt.
lcid := LOCALE_USER_DEFAULT;
Try
// Excel soll unsichtbar arbeiten.
ea.Visible[lcid] := False;
// Dein Code...
ews1.Range['
A1','
A1'].Select;
Try
// Gibts die Datei schon, dann löschen.
If FileExists(sFileName)
Then DeleteFile(sFileName);
// Exceldatei speichern.
ewb.SaveAs(sFilename,xlNormal,'
','
',False,False,xlNoChange,xlLocalSessionChanges,False,'
','
',lcid);
Except
// Wenn's Speichern der Exceltabelle schief ging,
// die Tabelle ist in Excel geöffnet und kann vom Anwender
// manuell gespeichert werden.
On E :
Exception Do Begin
MessageDlg('
Fehler beim Speichern der Excel-Tabelle ' + sFileName + '
.'
+ #13 + e.
Message,mtError,[mbok],0);
// Excel soll sichtbar arbeiten.
ea.Visible[lcid] := True;
End;
End;
Try
// Workbook schließen
// Excel fragt nach, ob Änderungen gespeichert werden sollen
ea.Workbooks.Close(lcid);
ea.Quit;
Except
On E :
Exception Do Begin
MessageDlg('
Fehler beim Schließen der Excel-Tabelle ' + sFileName + '
.'
+ #13 + e.
Message,mtError,[mbok],0);
// Excel soll sichtbar arbeiten.
ea.Visible[lcid] := True;
End;
End;
Finally
// Verbindung zu Excel trennen.
ews1.Disconnect;
ewb.Disconnect;
ea.Disconnect;
ews1.Free;
ewb.Free;
ea.Free;
End;
Das ist jetzt ganz schnell per "Vererbung per Copy&Paste" aus einem Programm geklaut, daher kann ich nicht sagen, ob es so auf Anhieb funktionieren wird.