AU3中怎么取EXCEL2007工作表的CodeName
$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也读不出来,为什么呢? {:face (245):}虽然不懂 给你顶 回复 2# 308513523
多谢多谢 07以上版本可以使用codename,但用au3无法取得,确实挺奇怪,敢问楼主意欲何为,看下有没有替代方法,一般用codename都是为了防止工作表名修改 我是要导入EXCEL的数据到数据库里。现在就是用了SHEETS(1)来做,但这样的话,如果工作表给移位了,那就麻烦了 那即使用codename也有问题啊,如果存在的话,可以直接用,如果不存在就有问题啦,不能读取也就不能循环各个工作表对比codename,如果文件固定了表名或者有指定的特征的话,倒是也可以解决 回复 6# kevinch
WORKSHEET的CODENAME和NAME不一样,CODENAME不用代码是该不到的,不想NAME,随便在EXCEL界面下就能改。
如果匹配不到的话,那就关掉那个WORKBOOK,不做任何操作嘛。
现在问题是那个CODENAME连读都读不到哇 你加个容错直接使用codename就行了,如果出错就处理一下出错的情况
页:
[1]