加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【Excel VBA篇】VBA常用小代码(八):批量将工作表转为单独工作薄

(2016-08-16 22:30:09)
标签:

杂谈

文:EXCELers(网名看见星光)

有时,我们需要将一个工作薄里的每张工作表,另存为单独的工作薄;如果只是一两张工作表需要这样处理,我们手工操作就挺好的,可如果是若干张,手工操作即烦又慢。

如果使用VBA来处理,这事就简单了。怎么个简单法呢?,请看动画视频:

http://ww4/large/005IRek6gw1f6voa2gcrcg30fk0cgkjl.gifVBA篇】VBA常用小代码(八):批量将工作表转为单独工作薄" TITLE="【Excel VBA篇】VBA常用小代码(八):批量将工作表转为单独工作薄" />

动画中所使用的VBA代码如下:


​Sub newbooks()
    Dim sht As Worksheet, mypath$
    Application.DisplayAlerts = False
    '取消显示系统警告和消息
    Application.ScreenUpdating = False
    '取消屏幕刷新
    With Application.FileDialog(msoFileDialogFolderPicker)
   '选择保存工作薄的文件路径
        .AllowMultiSelect = False
        '不允许多选
        If .Show Then
            mypath = .SelectedItems(1)
            '读取选择的文件路径
        Else
            Exit Sub
            '如果没有选择保存路径,则退出程序
        End If
    End With
    If Right(mypath, 1) <> "" Then mypath = mypath & ""
    For Each sht In Worksheets
    '遍历工作表
        sht.Copy
        '复制工作表,工作表单纯复制后,成为活动工作薄
        With ActiveWorkbook
            .SaveAs mypath & sht.Name, xlWorkbookDefault
            '保存活动工作薄到指定路径下
            .Close True '关闭工作薄
        End With
    Next
    MsgBox "处理完成。", , "提醒"
    Application.ScreenUpdating = True '恢复屏幕刷新
    Application.DisplayAlerts = True '恢复显示系统警告和消息
End Sub


代码中,注释部分,对每句代码的作用都做了说明,此处我们就不再啰嗦了。

新人朋友可以会对VBA代码有抵触心理,觉得那么高大上的东西,自己玩的转吗?大可不必有这样的疑虑,函数其实也是一种代码,所谓函数,只是微软把一些常用功能用编程模块化后的结果,所以——如果能用好函数,自然也能用好VBA代码。

如果并不打算深入学习VBA,只是临时使用下,那只要会复制黏贴就好了!

参见VBA小代码使用步骤说明:

http://ww4/large/005IRek6gw1f6voi62l3yj30gq43y7g7.jpgVBA篇】VBA常用小代码(八):批量将工作表转为单独工作薄" TITLE="【Excel VBA篇】VBA常用小代码(八):批量将工作表转为单独工作薄" />

能看到结束,想必对于VBA也是很感兴趣的吧?我们下期分享如何按照指定字段,将数据表快速拆分为单独的工作表。什么意思呢,比如,一张表格有不同班级的人员,现在需要把他们按照班级,快速拆分为各个的工作表~~

照例贴送示例文件百度网盘:百度网盘 (网盘里还有很多惊喜~~)

更多实用VBA小代码,请持续关注:@EXCELers

握手,晚安,明见。




0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有