找回密码
 加入
搜索
查看: 2590|回复: 4

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

[复制链接]
发表于 2012-7-2 17:13:36 | 显示全部楼层 |阅读模式
本帖最后由 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问题的解决方法,谢谢了!
发表于 2012-7-2 20:14:53 | 显示全部楼层
打个  酱油
_ExcelSheetList
_ExcelSheetMove
发表于 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
参考
 楼主| 发表于 2012-7-3 09:09:00 | 显示全部楼层
嗯,多谢大虾!
发表于 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))
工作表的索引号也可以用工作表名来代替
希望对楼主理解用法有帮助
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 07:29 , Processed in 0.082857 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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