瓶子在后台看到很多小伙伴在问工资条的做法,那今天瓶子就抛砖引玉,给大家分享两种方式,如果你还有更简洁的方法,欢迎留言分享!
第一种:添加辅助列
如下图所示的工资表,瓶子要给每一个人的工资条上面加一个表头,表头上面还要留一行空白用于裁剪。
我们先在H2、H3单元格手动输入1、2。
然后选中H2-H3单元格区域,将鼠标放置在H3单元格右下角,双击向下填充。可以看到如下结果。
按ctrl+c复制区域,然后点击H12单元格,按ctrl+V粘贴,得到如下的结果。
选中数据区域A1-H21,点击“数据”选项卡下的“排序”按钮。
点击“主要关键字”后方的下拉按钮,在下拉菜单中选择“(列H)”,点击确定。
可以看到如下所示的结果。
选中A1-G1单元格区域,按ctrl+C复制。
然后选中A2-H20单元格区域。
按定位快捷键ctrl+G,在弹出的对话框中点击“定位条件”,然后在如下所示的对话框中勾选“空值”。点击确定。
此时可以看到所有的空行都被选中了。
然后选中H列,点击“开始”选项卡下的“全部清除”。
在H2和I3单元格输入1。
选中H2-I3单元格区域,然后鼠标放在I3单元格右下角,双击填充。
可以看到如下所示的结果。
选中I列数据,按ctrl+G快捷键,选择“常量”。点击确定。
可以看到数据被选中了。
单击右键,选择“插入”。
在弹出的对话框中选择“整行”。
若想给表头和名字加上边框,选中整个表格区域,点击“开始”选项卡下的边框下拉按钮,在下拉菜单中选择“所有框线”。
可以看到所有单元格都加了框线。
若想要留白行没有框线,可以按照前面的定位空值的方式,定位所有空行后,按ctrl+1快捷键,弹出设置单元格格式对话框。在对话框中依次点击左、中、右三条框线,可去除空白行的三条框线,点击确定。
最终效果如下所示。
上面的方法比较适用于人数较少的公司,假如你所在的公司有两三千人,那就使用下面瓶子给你的万能模板吧!
第二种:VBA
我们将分别利用两段代码来实现每行员工工资数据前插入裁剪行(空行)、插入表头两步操作。
按ALT+F11快捷键,弹出如下图所示的VBA调试窗口。
点击“插入”-“模板”后,页面如下所示。
在空白处输入代码:(注意代码中所有标点符号都是英文标点符号)
Sub 选定范围隔行插入一行()
Dim i As Integer
For i = 11 To 3 Step -1
Rows(i & ":" & i).Insert
Next
End Sub
点击“运行”按钮。
此时可以看到表格完成了插入空行操作。
代码中有很多大家不认识的单词,但其实大家只需要明白下面两排的含义即可。
For i = 11 To 3 Step -1
Rows(i & ":" & i).Insert
上面的代码含义是:从第11行开始向上插入1行空行(Rows后面的第1个i和第2个i相差0,若想插入两行空行,可将第二个改为i+1),然后每隔1行(step -1)插入1行空行,到第3行(To 3)上方为止。
下面我们将原先的代码删除,再输入进另一组代码:(注意代码中所有标点符号都是英文标点符号)
Sub 隔2行插入表头()
For i = 20 To 4 Step -2
Range("A1:G1").Copy
Cells(I,1).Insert
Next
End Sub
点击运行按钮后结果如下。可以看到
这组代码和上面的含义类似,我们只需要理解中间两行就可以了。
For i = 20 To 4 Step -2
Range("A1:G1").Copy
Cell(i,1).Insert
上面的代码含义是:从第20行的A20(cell(i,1),i是行数,1是列数,i等于20的时候,就是第20行第1列即A20单元格)开始向上插入(Insert)1个从指定位置(A1:G1)拷贝(Copy)的表头,然后每隔2行(step -2)插入1个表头,一直插入到第4行(To 4)为止。如果是双行表头,只需要将A1:G1改为对应的表头区域即可。