2013-12-12 2 views
5

는 델파이와 엑셀 시트를 생성하고있어,하지만 난에 직면하고있어 문제는이 코드를 사용할 때 : 새로운 시트는 현재 선택된 워크 시트 전에 추가통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법은 무엇입니까?

Workbook.Sheets.Add; 

:

enter image description here

누구든지 통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법을 알고 있습니까?

+2

FYI에서 ['Worksheets.Add를 지정하고 있지 않다 다른 매개 변수에 대한 Type.Missing을 사용할 필요가 있음을 발견하고 '] (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) 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; 
+0

스택 오버플로에 오신 것을 환영합니다. 우리는 일반적으로 질문에 답하는 몇 가지 문장과 함께 필요한 답변을 선호합니다. 코드 자체만으로는 질문에 답하기가 힘듭니다. 왜냐하면 독자가 코드를 조사 할 때 코드의 어떤 부분이 실제로 문제와 관련이 있는지를 정확하게 파악해야하기 때문입니다. –

+0

ok .. 의견을 주셔서 감사합니다 – Pericles

+0

이것은 초기 바인딩입니다. Asker는 늦은 시각을 사용하고 있습니다. –

-1

매개 변수가 올바른지 후 사용하지만, 나는 또한 내가,

관련 문제