点击上方蓝字「Excel不加班」关注,看下一篇
恭喜下面3个粉丝:乊o①^、叶、y,获得书籍,加卢子微信chenxilu2019,发送姓名,电话,地址。
为了活跃气氛,在文末点亮“在看”+评论区留言,我会从中抽取3名粉丝,每人赠送一本《Excel效率手册 早做完,不加班》。
真的没骗你,点起来超爽,做完了2个按钮,我都点了几十次。
点一下工资表就变成工资条。
再点一下,工资条就变成工资表。
要用VBA实现这2个功能,真的很简单,只要你懂得最基础的复制粘贴,插入删除等功能即可。
其实,VBA就是将你当初学基础操作的过程,再重新来一遍而已。不要说什么不会英语,学不会之类,压根儿就跟英语无关,我也不会英语。
工资条,其实就是将第一行的标题复制,插入到3、5、7等奇数行,对吧。
Step 01 录制一个宏,将第一行的标题复制,插入到第3行。
Step 02点VB进入后台,再点模块,就可以看到刚刚录制的宏。
Step 03现在已经实现了在第3行插入标题,下面要实现在第5行插入标题。将A3改成A5,点绿色运行按钮。
接着是7、9、11……如果一次次改,那就体现不了VBA的优越性了,前面已经提过,可以借助循环语句。
Sub 工资条()
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 + 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
现在是19个人,而第一个人有标题,也就是需要操作18次。i * 2 + 1就是获取数字3、5、7……
写代码的时候,养成一个好习惯,就是定义变量,最终代码就出来了。
Sub 工资条()
Dim i As Integer
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 + 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Step 04将原来手工插入的标题删除掉,运行代码,即可生成工资条。
不难吧。
现在如何将工资条复原成工资表,也就是将3、5、7……行删除掉。
同理,录制宏,改代码。
Step 01录制一个宏,选择A3,删除整行。
Step 02点VB进入后台,再点模块,就可以看到刚刚录制的宏。
Step 03有了前面的基础,现在修改代码就变得简单,将工资条修改的部分全部照搬过来。
刚刚录制宏的时候是从上删除行,删除后 ,你会发现标题行错位了,现在并不是3、5、7……行。
记住,删除行跟插入行有所不同,插入行是从上面往下插入,而删除行要从下面往上删除。
现在是从18倒数到1,Step -1就是步长-1。
Sub 工资表()
Dim i As Integer
For i = 18 To 1 Step -1
Range("A" & i * 2 + 1).Select
Selection.EntireRow.Delete
Next
End Sub
Step 04将原来手工删除的标题恢复,运行代码,即可生成工资表。
最后,插入按钮来执行代码,会看起来更高大上。
不要老是害怕学不会,只要你知道循环语句,会录制宏就可以解决掉很多问题了。
VIP888元,一次报名,所有视频课程,终生免费学,提供一年在线答疑服务。
报名后加卢子微信chenxilu2019,发送报名截图邀请进群。
推荐:1秒制作多行表头工资条
学VBA的时候,有没感觉回到当初刚学Excel的那种感觉,什么操作都用最笨的技能实现。
也就是说,你会最笨的操作,再将这些操作录制成宏,再懂简单修改代码就好了。
面对不会的东西,你是选择放弃还是选择坚持?
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)
请把「Excel不加班」推荐给你的朋友
无需打赏,请点在看↓↓↓