我在把STRINGGRID中的内容存为EXCEL时,老是报OLE Error 800A03EC (50分)

  • 主题发起人 主题发起人 星期一
  • 开始时间 开始时间

星期一

Unregistered / Unconfirmed
GUEST, unregistred user!
try
if VarIsEmpty(XlsApp) then
XlsApp := Createoleobject('Excel.Application');
XLsApp.Workbooks.Add;
XlsApp.WorkSheets[1].Activate;
XlsSheet := XLsApp.Worksheets['Sheet1'];
except
BitBtn5.Enabled := False;
Abort;
end;

Cursor := crHourGlass;
Application.ProcessMessages;

with grid do
begin
for i:=0 to grid.RowCount - 1 do
for j:=0 to grid.ColCount - 1 do
XlsSheet.Cells[i,j].Value := Cells[j,i]; <----此句报错!
end;

XlsSheet.SaveAs(SaveDialog1.FileName);
XlsSheet.Application.Quit;

if not VarIsEmpty(XlsApp) then
begin
XlsApp.DisplayAlerts := True;
try
XlsApp.Application.Quit;
except
end;
end;
 
怎么加分?
 
兄弟,我也在研究ole,和你探讨一下不反对吧,我新建立一个工程,然后
把你的代码考到一个botton.onclick里面,XlsApp ,XlsSheet 全部定义成了
olevariant,结果运行到XLsApp.Workbooks.Add; 就出错了,EolesysError:拒绝访问。
你能告诉我为什么吗?
 
XlsSheet.Cells[i,j].Value := Cells[j,i]; <----此句抱错!
改成
XlsSheet.Cells(i,j) := Cells[j,i]; <----就可以拉.
 
楼上的:我试过了,不行的,还是同样的错误。
to flypuma:use ComObj, Excel97了吗?
 
仔细看了代码才知道,是你的循环出问题了.
请问excel里cells(0,0)在哪里?
 
哦?我试试
 
哈哈,真是不小心……
 
长见识! 刚才的问题可能是我的机器问题,我重新启动就没有了。
再问一句,这个程序好像没有办法启动excel,保存是成功的,用excel
打开看内容也对,可是
XlsApp.WorkSheets[1].Activate;一句的意思应该是启动excel吧,我试了
XlaApp.Activate没有这个函数。还是我理解有误,要启动excel还需要另外的
代码?谢谢
 
后退
顶部