读取Excel的Items[x,y]内容的问题。100分

hanly2008 2004-08-20 12:42:19
uses
... , ComObj, ...

var
aExcelApp: Variant;
aRowCount, aIndex: Integer;
begin
aExcelApp := CreateOleObject( 'Excel.Application' );
aExcelApp.Visible:= True;

//aName是Excel文件名,等于OpenDialog1.FileName
aExcelApp.WorkBooks.Open(aName);

aExcelApp.WorkSheets[1].Activate;

//运行到下面这句就报错“无效的参数数目”
aRowCount:= aExcelApp.WorkSheets[1].UsedRange[1].Rows.Count;

SGrid1.RowCount:= aRowCount;

for aIndex:=2 to aRowCount-1 do
StringGrid1.Cells[2,aIndex]:= aExcelApp.WorkSheets[1].Cells.Item[aIndex,2].Value;

aExcelApp.WorkBooks.Close;
aExcelApp.Quit;
end;

这段代码是用来将Excel的第二列的数据取到StringGrid1中,但是在运行
aRowCount:= aExcelApp.WorkSheets[1].UsedRange[1].Rows.Count
这句的时候就报错“无效的参数数目”,请问各位大侠,为什么??
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nhdj 2004-08-20
  • 打赏
  • 举报
回复
看vba是最正确的
viaboy 2004-08-20
  • 打赏
  • 举报
回复
help u up
Mark
hsmserver 2004-08-20
  • 打赏
  • 举报
回复
用Range选择某一行或列不就行了
例如: range:=aExcelApp.range[aExcelApp.cells[1,1],aExcelApp.cells[20,1]];
StringGrid1.Cells[1,i]:=range.value;

exu 2004-08-20
  • 打赏
  • 举报
回复
aRowCount:= aExcelApp.WorkSheets.item[1].UsedRange.item[1].Rows.Count

应该是这样了,没有试。
在vba中不用Item,在delphi中得用,你自己再研究研究吧,

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧