找回密码
 加入
搜索
查看: 3878|回复: 6

[AU3基础] au3操作表格时如果另外打开一个表格就会出错,为啥?

  [复制链接]
发表于 2014-8-15 14:38:12 | 显示全部楼层 |阅读模式
使用
Local $oExcel = _ExcelBookOpen("D:\test.xls",0)
打开了一个表格并使用
Local $aArray1 = _ExcelReadArray($oExcel, 1, 1, 10000, 1)
读取表格,但是这时如果从电脑打开另一个表格时,执行的au3就会报错?

为什么?怎样避免呢?
发表于 2014-8-15 15:29:36 | 显示全部楼层
很可能因为udf里的很多操作是针对activesheet(即活动工作表)的,活动工作表是进程级别的,也就是说同一个进程任意工作簿的任意工作表如果是当前激活操作的就是activesheet,这样就有不确定性,建议针对指定表操作,这样就不会出错
 楼主| 发表于 2014-8-15 15:51:43 | 显示全部楼层
回复 2# kevinch

怎样针对确定的表操作呢?以上函数打开的表格不是就是确定的表格了吗
发表于 2014-8-15 17:30:23 | 显示全部楼层
回复 3# chamlien
打开的确实是确定的表格,不过你在程序操作过程中另打开一个工作簿,activesheet就变成新打开的工作簿的活动工作表了,这样操作容易出错是很正常的
 楼主| 发表于 2014-8-15 21:10:21 | 显示全部楼层
回复 4# kevinch

那这样往往就得等au3运行完才能打开另一个表格了, 但是au3读取表格很慢...
发表于 2014-8-15 22:00:59 | 显示全部楼层
回复 5# chamlien
打开新表出错与读取慢都是udf代码的不足之处,其实都是可以修正的
发表于 2014-8-22 16:13:32 | 显示全部楼层
readarray非常慢,直接用.value
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 08:36 , Processed in 0.074283 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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