通常情况下,我们在EXCEL的工作薄中,使用菜单操作:插入一个新的工作表,那么,该工作表总是会出现在当前被选中的工作表的前面。
如果您想将新插入的工作表,让它的位置出现在所有工作表的最后,那么,得使用VBA代码来实现。
我们可以使用VBA代码中的ActiveWorkbook.Sheets.Add方法,将新插入的工作表插入到所有工作表的最后位置。
以下是与ActiveWorkbook.Sheets.Add相关的代码示例及说明,希望对您有所帮助。
一、ActiveWorkbook.Sheets.Add语法
ActiveWorkbook.Sheets.Add方法,有四个参数,分别是:
Before:Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之前。
After:Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之后。
Count:Variant 类型,可选。要新建的工作表的数目。默认值为 1。
Type:Variant 类型,可选。指定工作表类型。
ActiveWorkbook.Sheets.Add方法使用公式如下:
ActiveWorkbook.Sheets.Add 参数:=参数值
如:ActiveWorkbook.Sheets.Add Count:=6 其功能是:在当前工作薄的前面,插入新的六个工作表。
二、通过ActiveWorkbook.Sheets.Add将新表插入到最后
根据一的基础,下面,我们来实现本文的难题:在任何时候,如何让新表插入到最后?
使用如下代码即可:
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
代码解释,after参数的含义是,在某某表的后面插入新表。Worksheets.Count的含义是,所有表的总数;
现在,完整的看这行代码:
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
其含义是,在当前所有表的总数(也就是最后一个表拉,因为最后一个表的序号刚好就是所有表的总数)的后面插入新表。
三、其它类似的代码
A:ActiveWorkbook.Sheets.Add.Name = "工作表名称";插入一个给定名称的工作表;
B:ActiveWorkbook.Sheets.Add.Name = Format(Date, "yy-mm-dd");插入一个以年-月-日为名称的工作表;
C:ActiveWorkbook.Sheets.Add before:=Worksheets("Sheet1");在Sheet1之前插入一个工作表;
D:综合运行的代码
ActiveWorkbook.Sheets.Add Before:=Worksheets("Sheet6")
ActiveSheet.Name = "我是刚插入的"
以上两行代码的功能是,指定新插入表出现在Sheet6的前面,并且,指定要使用我是刚插入的为表的名称。