如何按指定单元格范围的名称批量建立工作表?
很多时候,就像嵌套函数一样,一段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集精选易学宝教程
领取专属 10元无门槛券
私享最新 技术干货