Hallo zobien123,
hier mal Codefragment um Tabellenblätter an die erste oder letzte Stelle einzufügen. Zum Schluss wird das erste Tabellenblatt auf die letzte Stelle verschoben (Delphi: Berlin / Excel: 2016).
Delphi-Quellcode:
procedure TForm1.btSheetLetzteStelleClick(Sender: TObject);
var
oExcel: OLEVariant;
oWB1: OLEVariant;
oWS1: OLEVariant;
oWS2: OLEVariant;
oWS3: OLEVariant;
oWS4: OLEVariant;
aFileFormat: integer;
letzteBlatt: integer;
strName: String;
begin
try
oExcel := CreateOleObject('Excel.Application');
except
ShowMessage('Microsoft Excel kann nicht starten.');
exit;
end;
oExcel.Visible:= TRUE;
// Workbook anlegen
if (NOT VarIsEmpty(oExcel)) then
begin
oWB1:=oExcel.Workbooks.add;
oExcel.Cells[1,1]:= 'das ist ein Test';
end;
if ((NOT VarIsEmpty(oExcel))and(NOT VarIsEmpty(oWB1))) then
begin
// Wir legen mal ein neues WorkSheet an, es soll vor den ersten Sheet eingefügt
// werden
oWS1:= oWB1.Worksheets.add(before:= oWB1.WorkSheets[1]);
oWS1.Name:= 'Blatt 1';
oWS2:= oWB1.Worksheets[2];
oWS2.Name:= 'Blatt 2';
oWS2.activate;
ShowMessage('Blatt 2 aktiviert');
oWS1.activate;
ShowMessage('Blatt 1 aktiviert');
// Wir legen 2 weitere Tabellenblätter an
oWS3:= oWB1.Worksheets.add(after:= oWB1.WorkSheets[2]);
oWS3.Name:= 'Blatt 3';
oWS4:= oWB1.Worksheets.add(after:= oWB1.WorkSheets[3]);
oWS4.Name:= 'Blatt 4';
// Das letzte Tabellenblatt ermitteln
letzteBlatt:= oWB1.WorkSheets.Count;
ShowMessage('Letztes Blatt: '+inttostr(letzteBlatt));
// Erstes Tabellenblatt auf die letzte Stelle setzen
oWB1.Worksheets['Blatt 1'].Move(after:= oWB1.WorkSheets[oWB1.WorkSheets.Count]);
ShowMessage('Alles klar!');
end;
// Ab hier muss alles wieder aufgeräumt werden.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.