沉迷于Excel里面的VBA不能自拔,一时用一时爽,一直用一直爽,真的好好用,哈哈哈~~~
某音不是经常有人晒工资条么?自己可以打印工资条,想要多少工资就给自己发多少?看下图,这是一个工资列表,第一行是表头,从第二行开始就是具体的信息了。
财务会考虑到工资的保密性,把工资条切成一小片一小片的,单独发给员工,所以每个工资条得附上表头,否则看不懂数据对应哪一项?插个题外话,稍微有点规模的公司,都会在内网做一个工资查询系统,导入一个Excel工资表,大大减少了工作量。
手动一个个插入表头是这样子的:
复制第一行,在第3行插入复制单元格;
复制第一行,在第5行插入复制单元格;
复制第一行,在第7行插入复制单元格;
复制第一行,在第9行插入复制单元格;
……
如此往复,我们发现规律,往3、7、9、11……插入第1行。
于是,把上面繁琐重复的步骤用代码来实现。
'制作工资条按钮
Private Sub CommandButton1_Click()
'往第3、5、7、9……行插入第一行,复制第1行。
Dim num As Integer
Dim result As String
Dim st As String
num = WorksheetFunction.CountA(Columns("A:A")) * 2
For i = 3 To num - 2
Rows(i & ":" & i).Select
Rows("1:1").Copy
Selection.Insert Shift:=xlShiftDown
i = i + 1
Next
End Sub
逆向思维,选中第3、5、7、9……行,删除就可以了。
'反向操作按钮,删除第3、5、7、9、11……行
Private Sub CommandButton2_Click()
Dim num As Integer
Dim result As String
Dim st As String
num = WorksheetFunction.CountA(Columns("A:A")) * 2
st = ""
For i = 3 To num
If i Mod 2 = 1 Then st = st & i & ":" & i & ","
Next
'选中3:3,5:5,7:7,9:9……
Range(Left(st, Len(st) - 1)).Select
Selection.Delete Shift:=xlShiftDown
End Sub
好了,想要获取这个小工具,加小编的微信:ABC10086IAC 添加好友时请备注:日常办公小技巧,小编会给你发送练习资料哟!同时也可以扫一扫关注微信公众号:日常办公小技巧!
来源:https://blog.csdn.net/qq_32330017/article/details/98871039