当前位置:   article > 正文

EXCEL VBA创建sheet/工作簿_vba新建一个sheet

vba新建一个sheet

1.需要创建以地市命名的系列sheet,但不想手动创建改名。

sheet名称
代码实现如下:

    Sub SheetAdd()
    
    Dim i As Long
    
    '定义一个长整型变量
    
    Sheets.Add After:=Sheets(Sheets.Count), Count:=Sheets(1).Range("A" & Rows.Count).End(xlUp).Row - 1
    
    '在现有Sheet后新建工作表,工作表数量等于Sheet(1)表A列非空单元格行数
    
    For i = 2 To Sheets.Count
    
    Sheets(i).Name = Sheets(1).Cells(i, 1).Value
    
    '工作表名称设置为Sheet(1)A列单元格值
    
    Next
    
    MsgBox "创建工作表完成!"
    
    End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

完成后如图:
创建完成图

2.那么,创建完成后需要把系列sheet分离成独立的工作簿该如何呢,

VBA实现代码如下:

    Sub 拆分工作簿()
    
    Dim sht As Worksheet '定义一个工作表变量 sht
    
    Dim mybook As Workbook '定义一个工作簿变量 mybook
    
    Application.ScreenUpdating = False '关闭屏幕更新:作用为加快宏的执行速度,这样将看不到宏的执行过程,但宏的执行速度加快了。
    
    Set mybook = ActiveWorkbook '将当前工作簿赋值给变量 mybook
    
    For Each sht In mybook.Sheets ' FOR 循环实现将工作簿中的多个工作表拆开成以工作表名称命名的工作簿并保存在原工作簿相同的路径中
    
    sht.Copy
    
    ActiveWorkbook.SaveAs Filename:=mybook.Path & "\" & sht.Name, FileFormat:=xlNormal
    
    ActiveWorkbook.Close
    
    Next
    
    Application.ScreenUpdating = True '恢复屏幕刷新 ,屏幕刷新 False /True 需成对出现 。
    
    MsgBox "工作簿已经拆分完毕"
    
    End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

完成如图:
拆分工作簿完成图

3.以上两个步骤可以归纳为:按指定名称批量创建Excel工作簿。

需要创建指定名字的工作簿
VBA代码实现如下:

    Sub Createwks()
    
        Dim i&, p$, r
    
        Application.ScreenUpdating = False
    
        '取消屏幕刷新
    
        Application.DisplayAlerts = False
    
        '取消警告提示,当有重名工作簿时直接覆盖
    
        p = ThisWorkbook.Path & "\"
    
        '当前工作簿所在的路径
    
        r = [a1].CurrentRegion '数据装入数组r
    
        For i = 2 To UBound(r)
    
        '标题不要,因此从第2个元素开始遍历数组r
    
            With Workbooks.Add '新建工作簿
    
                .SaveAs p & r(i, 1), xlWorkbookDefault
    
                '保存工作簿
    
                .Close True
    
                '关闭工作簿
    
            End With
    
        Next
    
        Application.ScreenUpdating = True
    
        Application.DisplayAlerts = True
        MsgBox "工作簿已经创建完毕"
    
    End Sub
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

完成后如图:
创建工作簿

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/596773
推荐阅读
相关标签
  

闽ICP备14008679号