[已解决]如何用最快的速度确定未知excel表中某列所含总数据数?
本帖最后由 cnergao 于 2013-2-12 18:27 编辑如何用最快的速度确定未知excel表中某列所含总数据数?
我用的是笨方法:#include <Excel.au3>
$sFilePath1 = "D:\AUTOIT_3.3.7.15.1\Test.xls"
$oExcel = _ExcelBookOpen($sFilePath1)
$I = 1
$sCellValue1 = _ExcelReadCell($oExcel, $I, 1)
Do
$I=$I+1
$sCellValue1 = _ExcelReadCell($oExcel, $I, 1)
Until StringLen($sCellValue1) = 0 如果数据太多。这个怕要浪费不少时间。
有没有更快更方便的
在另外一个贴子里看到http://www.autoitx.com/forum.php?mod=viewthread&tid=21185&extra=&highlight=excel&page=1
这个方法很好用。 但是引申出来的
$oExcel.ActiveSheet.Range("A65535").End(xlUp).Row(功能:只能计算出一列(行)的最后一个单元格所在的行(列)数。)
这个运行出错。
错误解决办法
$oExcel.ActiveSheet.Range("A65535").End(-4162).Row修改方法参考3楼
完整介绍Excel End(xlUp).Row
http://www.dzwebs.net/3645.html 回复 1# cnergao
把xlUp换成-4162 回复 1# cnergao
另外,你可以在excel中,用vba把某个vba常量用对话框的方式弹出来,直接显示值.
Sub Macro1()
MsgBox (xlUp)
End Sub
试试sqlite吧 MSOfficeConstants.au3,以前在英文网上找的
回复 2# lanfengc
谢谢。按你的方法搞定了。换成数字的间接的可以搞定好几个其他的问题。 回复 4# netegg
把excle当数据库操作倒是没想到
sqlite.au3操作excle。是用_SQLite_Gettable这条命令吗? 回复 5# 1007236046
这个下载过来看了。全是const定义。没有功能函数! $oExcel.ActiveSheet.cells($oExcel.activesheet.rows.count,1).End(3).Row用这个吧,不受版本限制 谢谢,学到了
页:
[1]