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

VBA常用小代码(2):按指定名称,批量创建工作薄

(2016-06-14 09:14:09)
标签:

杂谈

打个哈欠,各位表亲,早上好。今天和大家分享的技巧是,根据指定名称,批量创建Excel工作簿。

举个栗子,如下图,A列是创建工作簿的名称,需要在该工作薄所在的文件夹内批量创建相关名称的Excel工作薄。

 

 

http://ww3/large/005IRek6gw1f4uh6x4qvuj309y0caq4f.jpg


http://ww4/large/005IRek6gw1f4uh9txbyoj30cy0100sk.jpg

今天和大家分享的方法,依然还是VBA代码。话说前段时间,我给自己制定了个小目标,也就是把【常用VBA小代码】至少写够18篇。为啥是18呢?深呼吸,看我眼神,只为了纪念我那永远的18岁呗……

信不信拉倒!反正我是相信了。

好吧,说正事,根据A列指定名称批量创建工作薄,VBA代码如下:

Sub newbooks()

    Dim i&, p$, temp$

    On Error Resume Next

    '忽略代码运行中的错误,避免存在异常名称工作薄等问题时,代码运行中断。

    Application.ScreenUpdating = False

    '关闭屏幕刷新

    p = ThisWorkbook.Path & "\"

    '取得当前工作薄所在路径

    For i = 1 To Cells(Rows.Count, 1).End(3).Row

    '循环读取A列数据

        temp = Cells(i, 1) & ".xlsx"

        'temp是完整的含文件后缀的工作薄名称

        With Workbooks.Add

        '新建工作薄

            .SaveAs p & temp

            '保存工作薄,p & temp是要保存的文件的名称

            .Close False

            '关闭工作薄

        End With

    Next

    Application.ScreenUpdating = True

    '恢复屏幕刷新

End Sub

 


http://ww2/large/005IRek6gw1f4uhbotoj9j30cy010dfo.jpg

Application.ScreenUpdating = False

意思是关闭屏幕刷新,如果你不想看到工作薄从创建到关闭的整个画面过程,就使用它;通常,关闭屏幕刷新有助于提高代码的运算效率。

当然,如果你想在某些人面前装13,我代表我自己强烈建议你不要关闭屏幕更新,在旁人惊羡的目光里,让电脑屏幕闪烁的画面衬托你炫酷的小脸蛋吧~~咳咳~说不定可以借机和女同事或者男同胞交流一下友情以外的感情。

然后记得在代码结束前把屏幕刷新恢复。

Application.ScreenUpdating = True


http://ww2/large/005IRek6gw1f4uhcj81quj30cy010glg.jpg

上期和大家分享了【按指定名称批量创建文件夹】,网址: VBA常用小代码(1):按指定名称批量建立文件夹 。有好学聪慧可爱上进的小伙伴问:能不能在新建的每月文件夹里,再生成31天的文件夹?

当然是可以的,代码如下:

Sub newfolders()

    Dim m&, d&, p$

    On Error Resume Next

    '忽略代码运行中的错误,避免存在同名文件夹等问题时,代码运行中断。

    p = ThisWorkbook.Path & "\"

    '取得代码所在工作薄的路径

    For m = 1 To 12

        MkDir p & m & "月"

        '使用Mkdir语句创建月份文件夹

        For d = 1 To 31

            MkDir p & m & "月\" & d & "日"

            '在月份文件夹下,再使用Mkdir语句创建天数文件夹

        Next

    Next

End Sub

相比于上期的代码,这段代码多了以下句子:

For d = 1 To 31

    MkDir p & m & "\" & d & ""

Next d

       即在月份的循环里,再嵌套一层内循环,依然利用MkDir语句创建文件夹。关于MkDir语法,上期我们讲过了哈,不知道小伙们是否还记得?

http://ww2/large/005IRek6gw1f4uheiy0tbg3028028wea.gif

 

------------------------------THE END------------------------------

0

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

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

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

新浪公司 版权所有