Excel应用中,批量处理若是自动执行,不仅仅是摆脱无聊的复制和粘贴,更是效率的提升。
比如今天的主题:批量新建多个sheet工作表。
给定了一些内容,需要根据这些内容建立多个sheet工作表,如何使用VBA实现呢?
1、因为vba需要启用宏,所以excel保存的格式最好为.xlsm,而不是.xlsx,可以新建一个.xlsx的文件,然后另存为.xlsm的文件。
Dim a As Integer, sht2 As Worksheet '定义变量
a = 2 '初始值,从第二行开始,可以更改
Set st = Worksheets("神山") ' 表初始值,定位源数据表,可以更改
Do While st.Cells(a, "A") <> "" ' 设定循环条件,从神山表中的A2开始,如果数据不为空,执行该循环
On Error Resume Next ' 若表名不存在,忽略代码引起的运行错误
If Worksheets(st.Cells(a, "A").Value) Is Nothing Then '判断是否存在对应的工作表
Worksheets.Add after:=Worksheets(Worksheets.Count) '永远将新表加入到最后一个工作表之后
ActiveSheet.Name = st.Cells(a, "A").Value '新的工作表为当前活动的工作,将工作表的名称更改为神山表中对应单元格的名字。
End If
a = a + 1 '行号加1,继续新增下一个
End Sub