Delphi/Excel-未实例化工作表
Delphi RIO/Excel 2016。我正在使用Delphi启动Excel,然后创建一个新的电子表格,我将在稍后更新。。。。我已经用Delphi/Excel编写了很多代码,我看到了我以前从未见过的行为。我创建Excel,然后执行Excel应用程序。工作表。添加。。。创建新的工作表。由于我刚刚启动Excel,Worksheets对象为nil,因此,当我尝试添加新工作表时,会出现OLE错误(800A03EC)。如果我在ExcelApp.Worksheets.Add行之前单步执行代码,我会转到Excel,并执行文件/新建,这样会显示一个空工作表,我的代码工作正常。所以问题是,当ExcelApp.Worksheets为零时,如何实例化它?我可以发誓“添加”例程会自动完成Delphi/Excel-未实例化工作表,excel,delphi,office-interop,Excel,Delphi,Office Interop,Delphi RIO/Excel 2016。我正在使用Delphi启动Excel,然后创建一个新的电子表格,我将在稍后更新。。。。我已经用Delphi/Excel编写了很多代码,我看到了我以前从未见过的行为。我创建Excel,然后执行Excel应用程序。工作表。添加。。。创建新的工作表。由于我刚刚启动Excel,Worksheets对象为nil,因此,当我尝试添加新工作表时,会出现OLE错误(800A03EC)。如果我在ExcelApp.Worksheets.Add行之前单步执行代码,我会转到E
function glib_TestExcel: Integer;
var
myAPP: OleVariant;
oExcel : ExcelApplication;
thisSheet: _Worksheet;
begin
if not Assigned(oExcel) then
begin
myAPP := CreateOleObject('Excel.Application');
oExcel := IDispatch(myAPP) as ExcelApplication;
oExcel.Visible[LOCALE_USER_DEFAULT] := True;
oExcel.ScreenUpdating[LOCALE_USER_DEFAULT] := True;
// THIS IS THE PROBLEM LINE BELOW
oExcel.Worksheets.Add(EmptyParam, EmptyParam,1, xlWorksheet, LOCALE_USER_DEFAULT );
// Get a handle to the new sheet and set the Sheet Name
thisSheet := oExcel.ActiveSheet as _Worksheet;
thisSheet.Name := 'New Sheet1';
result := glib_SUCCESS;
end;
end;
您忘记了首先创建
工作簿
,以托管工作表
s。这就是罪魁祸首。提交答案,我会接受;