微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel vba 实例(4) – 根据已有名称,批量新建表格

Excel VBA 实例 永恒君 2466℃ 0评论

经常做报表或者是统计、财务等工作的朋友们,可能会时常遇到下面这种情况:

最终效果是这样:

VBA代码可以这么写:


Sub 创建表格()

Application.ScreenUpdating = False

r = [a1].CurrentRegion

For i = 1 To UBound(r)

    With Workbooks.Add

        .SaveAs ThisWorkbook.Path & "/" & r(i, 1) & ".xlsx"

        .Close False

    End With

Next

Application.ScreenUpdating = True

End Sub



保存后运行效果如下:

速度的话和电脑配置有些许关系,永恒君的电脑配置稍微有点卡,但是比手工的一个一个新建还是强不少的。


如果希望不是新建工作簿,而就是在当前的工作簿里新建表格,如下图,

代码只需要做稍微的改动,红色部分为改动项:


Sub 创建表格()

Application.ScreenUpdating = False

r = [a1].CurrentRegion

For i = 1 To UBound(r)

    Sheets.Add.Name = r(i, 1)

Next

Application.ScreenUpdating = True

End Sub


上图是按12月-1月排序,如果要按1-12月份的排序,则上面红色的代码改为即可:


Sheets.Add(after:=Sheets(Sheets.Count)).Name = r(i, 1)



是不是很方便呢?


不少人对VBA代码有抵触心理,其实没有那么复杂,把他看成一个稍微复杂点的函数即可。


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


至于怎么用VBA代码,可以参考之前的文章:


Excel vba 实例(1) - 批量制作工资表头

之前也写过一些VBA的实例,可以先保存起来,需要的时候直接拿出来用。

Excel vba 实例(2) - 批量将工作表拆分为单独文件

Excel vba 实例(3) - 多个工作簿批量合并


永恒君把上面实例的文件也分享出来,需要的直接使用也可以。


后台回复“新建表”即可。




Excel VBA功能很强大,但是要熟练的运用起来还是有一定的难度,好在永恒君帮大家搜集了几套关于VBA的视频教程,非常的实用。


需要的话,后台回复“VBA”获取吧~~



欢迎交流!


微信公众号:永恒君的百宝箱

个人博客:www.yhjbox.com

转载请注明:永恒君的百宝箱 » Excel vba 实例(4) – 根据已有名称,批量新建表格

喜欢 (3)
发表我的评论
取消评论
表情