2013-12-12 19 views
5

私はDelphiでExcelシートを生成するんだけど、私が直面してる問題は、私はこのコードを使用する場合ということです:ブックの最後のシートの後にワークシートを追加する方法はありますか?

Workbook.Sheets.Add; 

新しいシートは、現在選択されているワークシートの前に追加されます。

enter image description here

ブックの最後のシートの後にワークシートを追加する方法を知っている人はいますか?

+2

を指定していないよ、他のパラメータについてType.Missingを使用する必要があることを発見[ 'Worksheets.Addています'](http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx)メソッドには4つのオプションパラメータがあります。 – TLama

+1

'Workbook.Sheets.Add.After;'このトリックはやりますか? – joostmakaay

+3

「Workbook.Sheets.Add(NULL、Workbook.Sheets.Count)」と似ているかもしれません。 – TLama

答えて

5

Addメソッドは、新しいシートを挿入する場所を指定するパラメータ、特にAfterパラメータを受け入れます。新しいシートを挿入するシートへの参照である必要があります。あなたの場合、最後のシートが必要です。 Worksheetsは1ベースの配列なので、最後のシートはWorksheets[Worksheets.Count]で与えられます。一緒にすべてを置く、我々はこれを取得:

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

は、我々は法.Sheets.Addを使用する必要が新しいシートを追加するには、5つのパラメータ(その前のシート、その後のシート、および他の3を持っています、唯一の神知っている)この場合私は(NULL、aSheet、NULL、NULL、0)aシートを最後の後に挿入するために使用されます。パラメータの後に使用 さようなら

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; 
+0

ようこそスタックオーバーフロー。私たちは一般的に、質問に答えるいくつかの*文章と、必要であればデモンストレーションするコードを含む回答を好む。コード自体は、読者がコードを非常に慎重に検査して、コードのどの部分が実際に問題に本当に関係しているのかを正確に理解するように強制するため、質問に答えるのは貧弱です。 –

+0

ok ..コメントありがとうございました – Pericles

+0

これは早い段階です。 Askerは遅れている。 –

-1

は正しいですが、私はまた、私はFYI

関連する問題