는 델파이와 엑셀 시트를 생성하고있어,하지만 난에 직면하고있어 문제는이 코드를 사용할 때 : 새로운 시트는 현재 선택된 워크 시트 전에 추가통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법은 무엇입니까?
Workbook.Sheets.Add;
:
을
누구든지 통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법을 알고 있습니까?
는 델파이와 엑셀 시트를 생성하고있어,하지만 난에 직면하고있어 문제는이 코드를 사용할 때 : 새로운 시트는 현재 선택된 워크 시트 전에 추가통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법은 무엇입니까?
Workbook.Sheets.Add;
:
을
누구든지 통합 문서의 마지막 시트 뒤에 워크 시트를 추가하는 방법을 알고 있습니까?
Add
메서드는 새 시트를 삽입 할 위치를 나타내는 매개 변수, 특히 After
매개 변수를 허용합니다. 새 시트를 삽입하려면 시트에 대한 참조 여야합니다. 귀하의 경우, 마지막 장이 필요합니다. Worksheets
은 1부터 시작하는 배열이므로 마지막 시트는 Worksheets[Worksheets.Count]
입니다. 모두 함께 퍼팅, 우리가 얻을 :
Workbook.Worksheets.Add(After := Workbook.Worksheets[Workbook.Worksheets.Count]);
우리가 방법 .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;
스택 오버플로에 오신 것을 환영합니다. 우리는 일반적으로 질문에 답하는 몇 가지 문장과 함께 필요한 답변을 선호합니다. 코드 자체만으로는 질문에 답하기가 힘듭니다. 왜냐하면 독자가 코드를 조사 할 때 코드의 어떤 부분이 실제로 문제와 관련이 있는지를 정확하게 파악해야하기 때문입니다. –
ok .. 의견을 주셔서 감사합니다 – Pericles
이것은 초기 바인딩입니다. Asker는 늦은 시각을 사용하고 있습니다. –
매개 변수가 올바른지 후 사용하지만, 나는 또한 내가,
FYI에서 ['Worksheets.Add를 지정하고 있지 않다 다른 매개 변수에 대한 Type.Missing을 사용할 필요가 있음을 발견하고 '] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.worksheets.add.aspx) 메서드에는 4 개의 선택적 매개 변수가 있습니다. – TLama
'Workbook.Sheets.Add.After; '트릭을하겠습니까? – joostmakaay
'Workbook.Sheets.Add (NULL, Workbook.Sheets.Count)'와 같을 수도 있습니다. – TLama