高手请进,请问如何确定excel的范围???(50分)

  • 主题发起人 大鼻子
  • 开始时间

大鼻子

Unregistered / Unconfirmed
GUEST, unregistred user!
具体问题时这样的:我已经实现了excel插入到word文档了,但是我不清楚在不知道excel有多少行多少列的情况下该如何自动确定excel的范围。
[red]注意[/red]:不是手工确定范围,是在没见过excel的情况下。帮帮忙了!等着急用!!!先谢了!!!
 
大侠们是不是不明白我的意思?我的意思是,我要把已经建立好的excel表插入到word文档里,但是我不能把整个excel表加入,有用的只是有数字的那部分,
问题就是我不知道该怎么实现这部分的自动提取?没有人帮忙吗?人呢?拜托了!!![:(]
 
我是新手,好可怜!呜呜呜呜呜呜...[:(][:(][:(][:(]
 
下面引自http://www.delphibbs.com/delphibbs/dispq.asp?lid=759711中海之豚的回答,
可能能够解决你的问题:

可以利用VBA中的SpecialCells函数,返回一个 Range 对象,此对象代表与指定类型及
值相匹配的所有单元格,下面为其可用的常数:
xlCellTypeAllFormatConditions 任意格式的单元格
xlCellTypeAllValidation 具有有效条件的单元格
xlCellTypeBlanks 空单元格
xlCellTypeComments 包含注释的单元格
xlCellTypeConstants 包含常量的单元格
xlCellTypeFormulas 包含公式的单元格
xlCellTypeLastCell 已用区域的最后一个单元格 /////××××//这个常数在确定范围最有用!
xlCellTypeSameFormatConditions 具有相同格式的单元格
xlCellTypeSameValidation 具有相同有效条件的单元格
xlCellTypeVisible 所有可见单元格

比如我们可以利用这个函数确定最后一个包含数据的单元格:
ExcelApp.WorkBooks.ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
lastRow := ExcelApp.ActiveCell.Row;
lastCol := ExcelApp.ActiveCell.Column;
 
uses OleServer,ComObj;
var X: Variant;
begin
X:=CreateOLEObject('Excel.Application');//创建对象
X.WorkBooks.Open(XLSName);//打开指定的表
showmessage(Format('总行数=%d',[X.ActiveSheet.usedRange.Rows.count]);
X.quit;
X:=Unassigned; //释放VARIANT变量
end;
 
自己一行一行的统计
 
顶部