作者:慢滑板来自:Excel不加班
要生成30个日报表,估计你一个一个操作,移动、复制、重命名,一天大部分时间都在改。有了VBA,它可以立即生成,一切都可以通过点击按钮来完成。
事实上,在实际工作中,很多东西都可以由VBA生成。VBA离你不远,但与你的工作密切相关。
不要把VBA想得太复杂,只和zxdbg一起学习,不要想别的。
还是老一套,用最原始的方法操作,先录制宏,然后慢慢改代码完善。
步骤01录制宏,将模板移动或复制到最后,并选中创建副本。
步骤02: 00,VB进入后台,然后点击模块看到刚刚录制的宏。
工作表('模板')。选择选择此工作表的模板。
不要担心中间的句子,它没有意义。
工作表('模板')。复制后:=工作表(1)将模板复制到第一张工作表的背面。抄完之后,即使不懂英语,也能大致猜出意思。
现在要达到的效果是,每次复制最后一个工作表后,都会创建一个新表。第一次就在表1后面,第二次就在表2后面,第三次就在表3后面。
学习循环语句后,你可能会认为可以通过变量I来实现,但实际上还有一个更智能的。Sheets.count是工作表的数量。
现在,该语句被更改为工作表(“模板”)。CopyAfter3360=页数。
在生成新表的同时为其命名。床单。名称是工作表的名称,依次等于第1、第2和第3个名称.此时,通过For Next循环,让I变量随着循环数的变化而变化。
床单(床单。计数)。名称=i' day '
结合我刚才说的,代码就出来了。
还有一个小问题,就是每个表的A2生成日期。
床单。Range表示表格的单元格,日期之前的部分固定为‘2020/6/’,然后可以连接变量I。
床单(床单。计数)。范围(' a2')='2020/6/' i
此时,完整的代码就出来了。
次级经常预算()
作为整数变暗
对于i=1到30
工作表('模板')。挑选
工作表('模板')。=页数后复印(页数)
床单(床单。计数)。名称=i' day '
床单(床单。计数)。范围(' a2')='2020/6/' i
然后
末端接头
步骤03手动删除复制的模板,并运行代码以生成每日报告。
编写VBA代码时,它不区分大小写,会自动为您纠正。很多单词不需要记住。当您输入它们时,会自动提示它们。按Tab键完成它们。其实就像写函数一样。
最后,如果您需要每月汇总30个表,这也很简单,因为VBA生成相同的格式,并且只需要一个sum函数来求解。
=sum ('1st :30 '!B4)
写代码的时候,如果不知道怎么写一些语句,可以记录一个宏,这样会降低难度。我通常这样做。
学好录音宏,以后再慢慢接触一些新语句。实际上,需要记住的新语句并不多。最常用的是For Next循环语句,已经连续研究了4天。
我给大家留个小练习,前面用具体数字,比如12。现在改成了通用,不管有多少种形式,都可以从目录中提取。
选择子目录()
对于i=1到12
工作表(1)。范围(' c' i 1)=工作表(i 1)。名字
然后
末端接头