一讲到VBA,很多人就傻眼了,真有那么恐怖吗?当你看到利用VBA能实现的效果后,难道你一点都兴奋好奇?我也是个初学者,半年前我会用的函数不超过10个,函数的嵌套压根没接触过,可是现在我已经可以用VBA实现这个功能了(当然这只是皮毛):
上面是一份工资数据,我通过点击按钮,瞬间生成了工资条,并且在每个工资条中间插入一行,行高调整到合适尺寸,方便打印出来后裁剪。
以前我们也讲过如何快速制作工资条:
看了这个,你还会用原来的方法吗?你单位的工资数据格式是固定的,你只要做个代码,那以后就是一劳永逸的事情了。
我把代码分享出来,一来对前面所学知识的做一个练习,二来希望调动同学们的积极性。
代码如下:
Sub 制作工资条()
Dim i%, r$, r1$, n%, r2$, r3$
For i = 3 To [a1].End(xlDown).Row
r = r & i & ':' & i & ','
r1 = Left(r, Len(r) - 1)
Next
Range(r1).Insert
Range('a1', Cells(Rows.Count, 'f').End(xlUp)).SpecialCells(xlCellTypeBlanks) = Range('a1:f1').Value
For n = 3 To [a1].End(xlDown).Row Step 2
r2 = r2 & n & ':' & n & ','
r3 = Left(r2, Len(r2) - 1)
Next
Range(r3).Insert
With Range('a1', Cells(Rows.Count, 'f').End(xlUp)).SpecialCells(xlCellTypeBlanks)
.RowHeight = 13
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
End With
End Sub
一共三个部分,
第一部分,隔行插入,并把表头赋给各个空行
第二部分,隔两行插入,即把每个工资条用空行隔开了
第三部分,设置空行的边框线,每行的左、右边缘、内部竖框线全部取消
总结:
通过这个题目我们复习了:
1、循环for……next,以及灵活使用步长值
2、N=N 1的套路,不仅可以计数,还可以起到连接作用
3、如果要对一个对象的多个属性就行设置,可以用with……end with
4、怎么动态选取区域
联系客服