ExcelApplication的一个问题(高分)(200)

  • 主题发起人 主题发起人 R_Baggio
  • 开始时间 开始时间
R

R_Baggio

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ExcelApplication去写一个Excel表格,这个表格中的某些字段是有公式的。比如A2是A1的一个公式。我只要填写A1,A2就自动算出来了。可是总是在保存的时候出现错误,且断点总是停留在ExcelWorkSheet.Cells.Item[1,1] := Format('%8.3f',[strtofloat(Trim(StringGrid.Cells[i,1]))]);报 Interface not supported,有时候是 没有注册类别,有时候是 OLE error 800A03EC我保存用的方法是: ExcelWorkbook.SaveAs(SaveDialog.FileName, EmptyParam, EmptyWideStr, EmptyWideStr, False, False, xlExclusive, xlUserResolution, False, EmptyParam, EmptyParam, 0);
 
不要用float,就用字符型写入Excel的单元格试试。
 
一样啊。我直接用字符写,也一样。很奇怪。但是我怀疑还是跟单元格格式有关。
 
不要去设置Excel的单元格格式,你先直接往Excel单元格里写入'123.45',Excel会自动的认为这是一个浮点数。
 
我没有设置单元格格式呀。OLE能取出当前单元格式什么格式么?
 
ExcelWorkSheet.Cells.Item[1,1]改为ExcelWorkSheet.Cells[1,1].Value
 
如何活的当前单元格的格式呢?我用EXCEL看,是自定义的x,xxx0.0xxx和0.000,那我应该怎么设置呢?
 
我想,是不是把数据格式化成单元格的格式后再保存?现在用variant ExcelApplication := CreateOleObject('Excel.Application');ExcelApplication.Cells[1,1].Value := Format('%8.3f',[strtofloat(Trim(StringGrid.Cells[1,1]))]);保存的时候,偶尔还是会出现ole错误。
 
格式由NumberFormat属性控制,你可以看下VBA的帮助文件,一般office都带有chm格式的,里面有用ole控制的所有对象属性说明,在论坛问不如自己看详尽
 
能告诉我是哪个文件么?
 
在我的系统上,有office2K 和office2003,文件位置见下,你自己的系统安装路径可能不同:C:/Program Files/Microsoft Office/Office10/2052/VBAOF10.CHM
 
office帮助目录下各个chm文件都可以看下,Excel对象可见:C:/Program Files/Microsoft Office/OFFICE11/2052/VBAXL10.CHM
 
我去试试。谢谢。先结贴。
 
还是经常报错:OLE error 800A03EC
 
后退
顶部