xowen 发表于 2012-7-2 17:13:36

【已解决】怎么在XLS表格中按照顺序插入一个Sheet?(在线等)

本帖最后由 xowen 于 2012-7-3 09:09 编辑

有一个XLS文件,共计两个工作表,分别为Sheet1,Sheet2。
1、现在我想按照顺序插入一个Sheet,使它的显示顺序为Sheet1,Sheet2,Sheet3。
2、插入一个Sheet,使它的显示顺序为Sheet1,Sheet3,Sheet2。
我使用了Excel.au3中的_ExcelSheetAddNew函数,但是每次都是在第一个Sheet之前插入新的工作表,例如,插入后它的显示效果为Sheet3,Sheet1,Sheet2。
希望大虾提供#1、#2问题的解决方法,谢谢了!

veket_linux 发表于 2012-7-2 20:14:53

打个酱油
_ExcelSheetList
_ExcelSheetMove

kevinch 发表于 2012-7-2 22:12:07

$excel=ObjCreate("excel.application")
$excel.visible=True
$xls=$excel.workbooks.add
With $xls
        .worksheets.add(Default,.worksheets(.worksheets.count))
        .worksheets.add(.worksheets(3))
EndWith
$xls=0
$excel=0参考

xowen 发表于 2012-7-3 09:09:00

嗯,多谢大虾!

kevinch 发表于 2012-7-3 09:57:34

昨天发帖太匆忙,今天再说明一下
worksheets.add默认是将新添加的工作表放在第一个工作表的前面,而这个方法有两个参数
worksheets.add(before,after)
第一个参数表示放在哪个工作表的前面,默认是第一个,当写成worksheets.add(worksheets(3))时表示放在第三个表前面,想放在哪个表后面或者最后面就要用after了,au3中引用vba的参数无法使用开关标识,不能直接用after:=worksheets(3)这样,所以只能依照参数顺序来写,忽略掉的参数用default来表示,所以放在最后面的表示方法是worksheet.add(default,worksheets(worksheets.count))
工作表的索引号也可以用工作表名来代替
希望对楼主理解用法有帮助
页: [1]
查看完整版本: 【已解决】怎么在XLS表格中按照顺序插入一个Sheet?(在线等)