[已解决]换了office2013,代码好象不支持了,哪位大大帮忙看看
本帖最后由 zhanghdong 于 2014-9-23 11:52 编辑http://www.autoitx.com/forum.php?mod=viewthread&tid=19227&highlight=Excel%2B%BA%CF%B2%A2
以上的2010看某位大大发布的源码,一直在用,环境是excel2007,换了office 2013以后程序就用不了了。哪位大大帮忙看看,哪里需要改改。。
先谢谢了。
貌似以下这段代码有问题
$oExcel = ObjCreate("Excel.Application")
$oExcel.DisplayAlerts = False
$oExcel.ScreenUpdating = False
$oresult_Book = $oExcel.Workbooks.Open($result_file_name) ;打开 xls 结果文件
;过渡 sheet 的作用是使得复制到结果文件中的各个 sheets 排列在原有的 sheets 的后面
$oresult_Book.sheets($oresult_Book.sheets.count).activate ;选中最后一个 sheet
$oresult_Book.sheets.add.activate ;增加一个过渡 sheet,倒数第二个 sheet
$oresult_Book.activesheet.name = "tempsheet"
$oresult_Book.sheets($oresult_Book.sheets.count).activate ;再次选中最后一个 sheet
$oresult_Book.activesheet.move($oresult_Book.sheets($oresult_Book.sheets.count - 1)) ;把最后的 sheet 往前移动一位,这样就把过渡 sheet 移到最后
For $i = 0 To _GUICtrlListBox_GetCount($List1) - 1
$source_file_name = _GUICtrlListBox_GetText($List1, $i) ;从 List 控件中读取 xls 源文件名
If $source_file_name == $result_file_name Then ContinueLoop
$osource_Book = $oExcel.Workbooks.Open($source_file_name) ;打开 xls 源文件
$osource_Book.sheets.move($oresult_Book.sheets($oresult_Book.Sheets.Count)) ;复制各个 sheets
Next
$oresult_Book.sheets("tempsheet").delete ;删除过渡 sheet
If $new_book = 1 Then $oresult_Book.sheets("sheet1").delete ;删除新建 xls 结果文件时自动建立的 sheet
$oresult_Book.sheets(1).activate ;激活第一个 sheet,这样保存后再次打开时,默认是第一个 sheet 是激活的
$oExcel.save
$oExcel.Quit
$oExcel = ""
MsgBox(64, "提示", "合并完成") 自顶一下。。肯求高手帮忙看看。。。 回复 2# zhanghdong
OFFICE 2013 的安全性處理了嗎??
以前的 OFFICE 打開就是直接打開
新版的OFFICE 打開後 內定會先鎖住然後再問你是不是要編輯才可以開始動編輯
這個部分處理了嗎?? 回复 3# kk_lee69
大神这个怎么处理,我想试一下。。 换wps吧~~ {:face (288):} 回复 5# austere
Au3如何操作wps???请指教,谢谢! 哪位帮忙改改这段代码,能够使其支持excel2013 回复 6# xms77
和操作office 2003一样,不过要用最新的wps版本 再顶。。。 回复 4# zhanghdong
回复 10# kk_lee69
按照此操作以后,还是不行。估计不是这方面的原因。
还有其它方面的原因嘛?? 回复 11# zhanghdong
錯誤訊息是 回复 12# kk_lee69
没有一点错误信息。。。
我找到原因了。。看下楼。。 $oExcel.Save改成$oExcel.ActiveWorkbook.Save貌似excel 好象改命令了。。
问题就这么简单。。终于解决了。。 终于可以快乐的用2013了。。谢谢了各位。。特别感谢kk_lee69
页:
[1]
2