本帖最后由 zhanghdong 于 2014-9-23 11:52 编辑
http://www.autoitx.com/forum.php ... p;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, "提示", "合并完成")
|