vba 批量新建工作表

一 C 列没有重复值

初始表:

 

 插入工作表:

Sub ShtAdd()
    Rem==================== 根据C列的值新建不同的工作表
    Dim i As Integer, sht As Worksheet
    i = 2                                  '第一条记录的行号为2
    Set sht = Worksheets("成绩表")
    Do While sht.Cells(i, "C") <> ""       '定义循环条件
        Worksheets.Add after:=Worksheets(Worksheets.Count)      '在所有工作表后插入新工作表
        ActiveSheet.name = sht.Cells(i, "C").Value             '更改工作表的标签名称
        i = i + 1                         '行号增加 1
    Loop
End Sub

结果:

 

 

二、C 列有重复值

初始表:

 

 插入表:

Sub ShtAdd()
    Rem==================== 根据C列的班级名新建不同的工作表。
    Dim i As Integer, ws As Worksheet
    i = 2                                  '第一条记录的行号为2
    Set ws = Worksheets("成绩表")
    Do While ws.Cells(i, "C") <> ""       '定义循环条件
        On Error Resume Next            '当没有对应班级工作表时,忽略下一行代码引起的运行是错误
        If Worksheets(ws.Cells(i, "C").Value) Is Nothing Then
            Worksheets.Add after:=Worksheets(Worksheets.Count)      '在所有工作表后插入新工作表
            ActiveSheet.name = ws.Cells(i, "C").Value             '更改工作表的标签名称
        End If
        i = i + 1                         '行号增加1
    Loop
End Sub

结果:

 

原文地址:https://www.cnblogs.com/shanger/p/12993804.html