经常做报表或者是统计、财务等工作的朋友们,可能会时常遇到下面这种情况:
最终效果是这样:
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代码,可以参考之前的文章:
之前也写过一些VBA的实例,可以先保存起来,需要的时候直接拿出来用。
Excel vba 实例(2) - 批量将工作表拆分为单独文件
永恒君把上面实例的文件也分享出来,需要的直接使用也可以。
后台回复“新建表”即可。
Excel VBA功能很强大,但是要熟练的运用起来还是有一定的难度,好在永恒君帮大家搜集了几套关于VBA的视频教程,非常的实用。
需要的话,后台回复“VBA”获取吧~~
欢迎交流!
微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com