找回密码
 加入
搜索
查看: 4854|回复: 8

[系统综合] 关于excel object问题【已解决】

  [复制链接]
发表于 2011-5-11 10:23:57 | 显示全部楼层 |阅读模式
本帖最后由 leon460 于 2011-5-17 12:41 编辑


我有三个excel文件,a.xls,b.xls,c.xls,并且我在windows下双击打开。
请问,我怎样能获取到 这三个文件对应的excel 对象标识,以供  _ExcelBookClose($oExcel [, $fSave = 1 [, $fAlerts = 0]])  这个函数使用?
实际上就是怎样得到 $oExcel的值?(不是用 _ExcelBooknew 和  _ExcelBookopen得到的哦,我是直接用excel软件打开的哦)

非常感谢。
发表于 2011-5-11 10:50:14 | 显示全部楼层
$oExcel=ObjGet("","excel.application")
if IsObj($oExcel) Then
        if $oExcel.workbooks.count>0 Then
                for $oWorkbook in $oExcel.workbooks
                        $oWorkbook.close(False)
                Next
        EndIf
        $oExcel.quit
endif
这段供套用,不用UDF也可以,UDF也是这个原理写的,调用Excel的vba环境处理。
发表于 2011-5-11 10:52:23 | 显示全部楼层
其中的for语句中,用$oWorkbook.name可以得到文件名,如果需要判断的话,可以在这里进行。
 楼主| 发表于 2011-5-11 13:12:03 | 显示全部楼层
本帖最后由 leon460 于 2011-5-11 13:14 编辑

回复 2# kevinch


请问下:
$oWorkbook.close(False)  这是什么意思哇?如果我想了解以上代码,我怎么查找相关exce.applicationl相关资料?

若我想单独关闭指定的Workbook ,不影响别的工作薄怎么写代码?

再次感谢
发表于 2011-5-12 11:19:46 | 显示全部楼层
$oWorkbook.close(False)
就是关闭工作簿并且不保存的意思,如果false换成true则关闭时保存,只关闭指定 的工作簿可以在关闭前判断一下工作簿名,如
if stringlower($oWorkbook.name)="test.xls" then $oWorkbook.close(false)

评分

参与人数 1金钱 +10 收起 理由
leon460 + 10

查看全部评分

 楼主| 发表于 2011-5-12 23:00:46 | 显示全部楼层
回复 5# kevinch

感谢这位大哥的帮助,问题已经解决了。

还有个小白的问题,
1、$oExcel.workbooks.count
2、 $oWorkbook.close(False) 为什么不是$oWorkbook.quit(False),,以上还有那些扩展语句???
我想看下这些语句的详细资料,请指导下我要查哪方面的资料?

非常非常感谢。
发表于 2011-5-13 09:40:04 | 显示全部楼层
本帖最后由 kevinch 于 2011-5-13 09:41 编辑

1. $oExcel.workbooks.count是指objget附加到的excel程序现在打开的工作簿数量
2. $oWorkbook是工作簿,关闭只有close方法,后面的false指的是关闭时不保存工作簿变更内容,而$oExcel是程序,退出是用quit

以上的用Excel VBA的内容直接修改成的,也是vba封装的一种方式,因为vba不提供编译功能。
楼主如果有兴趣可以参考excel vba的帮助文件,或者短消息联系我。
 楼主| 发表于 2011-5-13 12:00:23 | 显示全部楼层
回复 7# kevinch

非常感谢。我google下相关内容。。你的qq号码多少哇?
发表于 2011-7-20 13:08:22 | 显示全部楼层
学习了!!谢谢!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 21:36 , Processed in 0.076043 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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