打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
日报、月报不发愁,再也不用一个个操作,一次全搞定

为了活跃气氛,在文末点亮“在看”+评论区留言,我会从中抽取3名粉丝,每人赠送一本《Excel效率手册 早做完,不加班》。

要生成30个日报表,估计你是一个个操作,移动复制重命名,改了大半天。有了VBA以后,就可瞬间生成,点一下按钮全搞定。

其实,实际工作中,很多东西都可以靠VBA生成的。VBA并不遥远,而是与你的工作息息相关。

你也不要把VBA想得太复杂,跟着卢子学习就行,其他别想。

还是老套路,用最原始的方法操作,先录制宏,再慢慢改代码完善。

Step 01 录制一个宏,将模板移动或复制,移至最后,勾选建立副本。

Step 02 点VB进入后台,再点模块,就可以看到刚刚录制的宏。

Sheets("模板").Select 选择模板这个工作表。

中间那句不用管,没啥意义。

Sheets("模板").Copy After:=Sheets(1) 将模板复制到第1个工作表后面。Copy复制After之后,即使不会英语,你都可以大概猜出意思。

现在要实现的效果就是,每复制一次,都在最后工作表的后面创建一个新表。第1次就在表1后面,第2次就在表2后面,第3次就在表3后面。

前面学了循环语句,你可能想到通过i这个变量来实现,其实还有一个更智能的。Sheets.count就是计算工作表的个数。

现在语句就改成Sheets("模板").Copy After:=Sheets(Sheets.Count)

生成新表的同时对该表进行命名,Sheets.Name就是工作表的名称,名称依次等于1日、2日、3日……此时通过For Next循环,让i变量随着循环次数变更来实现。

Sheets(Sheets.Count).Name = i & "日"

将刚刚说的内容综合起来代码就出来了。

还有一个小问题,就是在每个表的A2生成日期。

Sheets.Range代表某个表的单元格,日期前面部分是固定的为 "2020/6/" 再连接变量i就可以。

Sheets(Sheets.Count).Range("a2") = "2020/6/" & i

到此,完整的代码就出来了。

Sub rb()

Dim i As Integer

For i = 1 To 30

    Sheets("模板").Select

    Sheets("模板").Copy After:=Sheets(Sheets.Count)

    Sheets(Sheets.Count).Name = i & "日"

    Sheets(Sheets.Count).Range("a2") = "2020/6/" & i

Next

End Sub

Step 03 将复制的模板手工删除掉,运行代码,即可生成日报。

在写VBA代码的时候,不区分大小写,会自动帮你更正。很多单词也可以不用记住,在输入的时候会自动提示,按Tab键可以补齐。其实就跟写函数一样。

最后,如果需要按月汇总30个表格,也很简单,因为是VBA生成的格式都一样,只需一个SUM函数就解决。

=SUM('1日:30日'!B4)

写代码的时候,你某些语句不懂写,可以录制一个宏,这样就会将难度降低,平常我都是这样做。

将录制宏学好了,后面再慢慢接触一些新语句,其实需要记住的新语句也没多少。最常用的就是循环语句For Next,已经连续学了4天。

留一个小练习给你,前面都是用具体数字,比如12这种,现在改成通用的,不管有多少表格,都可以提取到目录。

Sub 提取目录()

    For i = 1 To 12

        Sheets(1).Range("c" & i + 1) = Sheets(i + 1).Name

    Next

End Sub

推荐:一键搞定!根据总表生成多个分表,根据分表生成目录

上篇:一键生成工资条、工资表,点起来超爽

学了4天VBA,你有什么感想?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
EXCEL日报、月报不发愁,再也不用一个个操作,一次全搞定
Excel快速合并多个工作表为一个工作表的VBA
Excel小技巧:使用VBA代码,5秒钟搞定合并N张工作表(内附代码)
EXCEL文件里的工作表太多,简单VBA代码快速添加目录表
每日Excel分享(VBA)| 根据指定名称批量新建工作表最快的两种方法,没有之一
EXCEL VBA 快速合并多个工作表数据转换为数值到一个工作表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服