利用VBA批处理插入表头

ぃ、小莉子 提交于 2019-11-26 12:58:58

​沉迷于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 添加好友时请备注:日常办公小技巧,小编会给你发送练习资料哟!同时也可以扫一扫关注微信公众号:日常办公小技巧

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!