EXCEL VBA创建sheet/工作簿

博客围绕Excel操作展开,主要讲述按地市名称批量创建系列sheet,避免手动创建改名,还介绍了将创建好的系列sheet分离成独立工作簿的方法,最后归纳为按指定名称批量创建Excel工作簿,并给出了VBA代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

完成后如图:
创建完成图

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

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

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

完成后如图:
创建工作簿

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值