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

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

很多时候,就像嵌套函数一样,一段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列的数据批量建立工作表,因此在运行该段代码之前,务必先激活存放工作表名称数据的表格。

图文作者:看见星光

VBA编程学习与实践

易学宝微视频教程,1290个Office技巧精粹,每个技巧都与实际工作密切相关。轻松学习技巧,练就职场达人。淘宝搜索关键字:ExcelHome易学宝

本公众号回复关键字:大礼包立刻免费获取50集精选易学宝教程

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180117B0360500?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区