找回密码
 加入
搜索
查看: 3760|回复: 7

[AU3基础] AU3中怎么取EXCEL2007工作表的CodeName

  [复制链接]
发表于 2012-6-8 23:34:09 | 显示全部楼层 |阅读模式
$objExcelApp=ObjCreate("Excel.Application")
;~          $objExcelApp .visible=True
$objExcelWorkbook=$objExcelApp.Workbooks.Open("D:\ComputerList\1.xlsx")
For $i=1 To $objExcelApp.Activeworkbook.sheets.count
MsgBox(0,"",$objExcelApp.Activeworkbook.Sheets($i).codename)
Next

但如果是显示工作表名字却可以
MsgBox(0,"",$objExcelApp.Activeworkbook.Sheets($i).name)
试过2003工作表的CodeName能取到,但现在取2007的就不行,即使是2007另存为的.xls也读不出来,为什么呢?
发表于 2012-6-9 09:48:49 | 显示全部楼层
虽然不懂 给你顶
 楼主| 发表于 2012-6-11 09:53:00 | 显示全部楼层
回复 2# 308513523


    多谢多谢
发表于 2012-6-11 10:00:25 | 显示全部楼层
07以上版本可以使用codename,但用au3无法取得,确实挺奇怪,敢问楼主意欲何为,看下有没有替代方法,一般用codename都是为了防止工作表名修改
 楼主| 发表于 2012-6-11 16:45:49 | 显示全部楼层
我是要导入EXCEL的数据到数据库里。现在就是用了SHEETS(1)来做,但这样的话,如果工作表给移位了,那就麻烦了
发表于 2012-6-11 17:04:25 | 显示全部楼层
那即使用codename也有问题啊,如果存在的话,可以直接用,如果不存在就有问题啦,不能读取也就不能循环各个工作表对比codename,如果文件固定了表名或者有指定的特征的话,倒是也可以解决
 楼主| 发表于 2012-6-12 20:01:58 | 显示全部楼层
回复 6# kevinch

WORKSHEET的CODENAME和NAME不一样,CODENAME不用代码是该不到的,不想NAME,随便在EXCEL界面下就能改。
如果匹配不到的话,那就关掉那个WORKBOOK,不做任何操作嘛。
现在问题是那个CODENAME连读都读不到哇
发表于 2012-6-13 09:11:38 | 显示全部楼层
你加个容错直接使用codename就行了,如果出错就处理一下出错的情况
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 06:22 , Processed in 0.083875 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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