如何在工作簿的最后一个工作表之后添加工作表?

我正在用Delphi生成一个Excel工作表,但是我面对的问题是,当我使用这个代码时:

Workbook.Sheets.Add; 

新工作表添加在当前选定的工作表之前:

在这里输入图像说明

有谁知道如何添加工作表的最后一张工作表后?

Add方法接受参数,以指示插入新工作表的位置,特别是After参数。 它应该是对工作表的引用,以便在之后插入新工作表。 在你的情况下,你想要的最后一张。 Worksheets是基于1的数组,因此最后一个Worksheets[Worksheets.Count]Worksheets[Worksheets.Count] 。 把它放在一起,我们得到这个:

 Workbook.Worksheets.Add(After := Workbook.Worksheets[Workbook.Worksheets.Count]); 

要添加一个新工作表,我们需要使用方法.Sheets.Add,它有五个参数(在它之前的工作表,其他工作表和其他3,只有天知道)在这种情况下,我用(NULL,aSheet,NULL ,NULL,0)where aSheet在最后一个之后插入它。 再见

 uses ... OleServer, ExcelXP ... type TForm1 = class(TForm) Button1: TButton; ExcelApplication1: TExcelApplication; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; ... procedure TForm1.Button1Click(Sender: TObject); var Excelfile:OleVariant; aBook: _WORKBOOK; aSheet: _WORKSHEET; begin Excelfile:='c:\plantilla.xls'; ExcelApplication1.connect; aBook:= ExcelApplication1.workbooks.add(Excelfile,0); aSheet:= ExcelApplication1.sheets[aBook.Sheets.Count] as _WORKSHEET; aBook.Sheets.Add(NULL,aSheet,NULL,NULL,0); aSheet:= ExcelApplication1.sheets[aBook.Sheets.Count] as _WORKSHEET; asheet.Name:='Test last position'; ExcelApplication1.visible[0]:=true; ExcelApplication1.disconnect; end; 

使用后参数是正确的,但我也发现我需要使用Type.Missing其他参数,我没有指定