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

[AU3基础] 如何判断一个EXCEL文件已打开

  [复制链接]
发表于 2011-6-22 09:12:33 | 显示全部楼层 |阅读模式
本帖最后由 xwlzx 于 2011-6-22 09:13 编辑

怎么判断一个EXCEL文件是否已打开,如果一个EXCEL文件已打开,那么就将对象指定到此打开的EXCEL文件上进行操作,如果还没打开,就创建EXCEL对象。
AU3用户自定义函数中没有判定是否已打开一个EXCEL文件的函数
发表于 2011-6-22 10:07:31 | 显示全部楼层
本帖最后由 kevinch 于 2011-6-22 10:11 编辑

objget(全路径文件名)
已打开则直接引用,未打开则会打开文件。
优点:隐性打开,不会出现界面,处理速度快。
缺点:只能读取,不能改写文件(自测结果,非权威结论)。
最好在结束时执行个不保存关闭文件的命令。
发表于 2011-6-22 23:38:16 | 显示全部楼层
最近研究了下UDF里的EXCEL管理,用_ExcelBookOpen打开一个EXCEL文件后,只能对这一个文件进行操作,而且要操作第二个EXCEL文件之前,最好把第一个EXCEL文件_ExcelBookClose,否则很容易出错误。
可以先参考下AU3的UDF下EXCEL 管理
UDF 函 数 名 称    功 能 描 述
_ExcelBookAttach 附加 Excel 文件打开模式.

_ExcelBookClose  关闭活动工作簿并删除指定的 Excel 对象.

_ExcelBookNew    创建新工作簿并返回其对象标识符.

_ExcelBookOpen   打开一个现有的工作簿并返回其对象标识符.

_ExcelBookSave   保存指定的 Excel 对象活动工作簿.

_ExcelBookSaveAs 保存指定 Excel 对象活动工作簿为新的文件名 和/或 类型.(类似 另存为 菜单命令).
发表于 2011-6-23 01:01:42 | 显示全部楼层
回复 1# xwlzx
文件被打开以后就不能再次说写入动作,很多命令都可以实现这个功能,
如 open  重命名等
 楼主| 发表于 2011-6-23 09:41:01 | 显示全部楼层
本帖最后由 xwlzx 于 2011-6-23 09:45 编辑

回复 2# kevinch
谢谢,如果不能写,就不太好啊!
 楼主| 发表于 2011-6-23 09:42:24 | 显示全部楼层
回复 3# xwt620

好像没有我要实现的功能啊
发表于 2011-6-23 12:38:19 | 显示全部楼层
回复  kevinch
谢谢,如果不能写,就不太好啊!
xwlzx 发表于 2011-6-23 09:41

如果是已经打开的,用objget得到的是可以写入的,如果是未打开的,用objget得到的是不可写入的。
大量操作excel文档的话,建议用objcreate创建个excel进程来处理,进程的visible属性可以设置成false,只要你知道你是在做什么就行了,当然,调试的时候可以设置为true,这样可以看到处理的部分。
 楼主| 发表于 2011-6-23 15:22:02 | 显示全部楼层
本帖最后由 xwlzx 于 2011-6-23 15:35 编辑

回复 7# kevinch

非常感谢!这样确实非常好,学习了!
受您的启发,我现在仔细看了AU3帮助文档的COM对象,受益匪浅啊!谢谢!
发表于 2011-6-24 17:37:17 | 显示全部楼层
首先查看有没有excel.exe的进程
然后枚举顶层窗口的标题有没有您要的excel的标题
如果没有创建
发表于 2011-6-28 23:02:18 | 显示全部楼层
回复 9# 502762378

好思路 ,,呵呵,,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 01:26 , Processed in 0.080075 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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