通过ActiveWorkbook.Sheets.Add将新表插入到最后的代码

通常情况下,我们在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的前面,并且,指定要使用我是刚插入的为表的名称
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sub MergeData() Dim FilePath As String Dim FileName As String Dim SheetName As String Dim DestFileName As String Dim DestSheetName As String Dim LastRow As Long Dim DestLastRow As Long Dim i As Integer Dim j As Integer '设置源文件夹路径和目标文件夹路径 FilePath = "C:\SourceFolder" DestFilePath = "C:\DestFolder" '循环遍历源文件夹下的所有文件 FileName = Dir(FilePath) Do While FileName <> "" '打开源文件 Workbooks.Open (FilePath & FileName) '获取源文件名和表格名 SheetName = ActiveWorkbook.Sheets(1).Name '循环遍历源表格中的所有行 For i = 1 To 9405 '获取当前行的地点名称 PlaceName = ActiveWorkbook.Sheets(1).Cells(i, 1).Value '在目标文件中查找该地点名称对应的表格 DestFileName = DestFilePath & PlaceName & ".xlsx" If Dir(DestFileName) = "" Then '如果目标文件不存在,则新建该文件,并在第一行写入表头 Workbooks.Add ActiveSheet.Name = SheetName ActiveWorkbook.SaveAs DestFileName ActiveWorkbook.Close Workbooks.Open (DestFileName) DestLastRow = 1 For j = 1 To 10 ActiveWorkbook.Sheets(1).Cells(DestLastRow, j).Value = ActiveWorkbook.Sheets(1).Cells(1, j).Value Next j Else '如果目标文件已存在,则打开该文件,并在最后一行写入当前行的数据 Workbooks.Open (DestFileName) DestLastRow = ActiveWorkbook.Sheets(1).UsedRange.Rows.Count + 1 End If '将当前行的数据写入目标文件中对应的表格中 For j = 1 To 10 ActiveWorkbook.Sheets(1).Cells(DestLastRow, j).Value = ActiveWorkbook.Sheets(1).Cells(i, j).Value Next j ActiveWorkbook.Save ActiveWorkbook.Close Next i '关闭源文件 Workbooks(FileName).Close '获取下一个文件名 FileName = Dir Loop End Sub这段代码中下标越界,更改
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值