分享

VBA常用小代码:按指定名称批量建立工作表

 L罗乐 2017-09-26

如何按指定单元格范围的名称批量建立工作表?

很多时候,就像嵌套函数一样,一段VBA代码往往也是由几段基础的常用代码组合而成的。 

如下图所示,A列是需要建立工作表的名称。

                            

VBA根据A列数据批量建立工作表的代码如下:


Sub NewSht()
    'ExcelHome VBA编程实践与学习
    Dim Sht As Worksheet, Rng As Range
    Dim Sn, t$
    Set Rng = Range('a2:a' & Cells(Rows.Count, 1).End(xlUp).Row)
    '将工作表名称所在的单元格区域赋值给变量Rng,单元格A1是标题,不读入
    On Error Resume Next
    '当代码出错时继续运行
    For Each Sn In Rng
    '遍历Rng(工作表名称集合)
        t = Sn
        '还记得这里我们为什么用这句代码吗?
        Set Sht = Sheets(t)
        '当工作簿不存在工作表Sheets(t)时,这句代码会出错,然后……
        If Err Then
        '如果代码出错,说明不存在工作表Sheets(t),则新建工作表
            Worksheets.Add , Sheets(Sheets.Count)
            '新建一个工作表,位置放在所有已存在工作表的后面
            ActiveSheet.Name = t
            '新建的工作表必然是活动工作表,为之命名
            Err.Clear
            '清除错误状态
        End If
    Next
    Rng.Parent.Activate
    '重新激活名称数据所在的工作表
End Sub


复制该段代码后,操作过程参见下图动画:


小提示:

该段代码是根据当前工作表A的数据批量建立工作表,因此在运行该段代码之前,务必先激活存放工作表名称数据的表格。

图文作者:看见星光

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多