找回密码
 加入
搜索
查看: 3509|回复: 9

[系统综合] [已解决]如何用最快的速度确定未知excel表中某列所含总数据数?

  [复制链接]
发表于 2013-2-12 07:11:04 | 显示全部楼层 |阅读模式
本帖最后由 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 ... ht=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
发表于 2013-2-12 11:35:38 | 显示全部楼层
回复 1# cnergao


    把xlUp换成-4162
发表于 2013-2-12 11:37:45 | 显示全部楼层
回复 1# cnergao


    另外,你可以在excel中,用vba把某个vba常量用对话框的方式弹出来,直接显示值.
Sub Macro1()
    MsgBox (xlUp)
End Sub
发表于 2013-2-12 12:03:50 | 显示全部楼层
试试sqlite吧
发表于 2013-2-12 15:54:36 | 显示全部楼层
MSOfficeConstants.au3,以前在英文网上找的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-2-12 18:08:28 | 显示全部楼层
回复 2# lanfengc

谢谢。按你的方法搞定了。换成数字的间接的可以搞定好几个其他的问题。
 楼主| 发表于 2013-2-12 18:17:40 | 显示全部楼层
回复 4# netegg

把excle当数据库操作倒是没想到
sqlite.au3操作excle。是用_SQLite_Gettable这条命令吗?
 楼主| 发表于 2013-2-12 18:23:56 | 显示全部楼层
回复 5# 1007236046

这个下载过来看了。全是const定义。没有功能函数!
发表于 2013-2-12 18:49:10 | 显示全部楼层
$oExcel.ActiveSheet.cells($oExcel.activesheet.rows.count,1).End(3).Row
用这个吧,不受版本限制
发表于 2013-2-18 09:43:17 | 显示全部楼层
谢谢,学到了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 11:42 , Processed in 0.091652 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表