EXCEL工资条VB制作方法
2020EXCEL工资条VB制作方法
VB 法
现在许多单位都实现了工资代储,但每月的工资清单(工资条)还得要发给职工。如果用 Excel 程序处理的工资表,打印后每页只有一个表头,剪裁成条后除了每页的第一名职工外,其余的就没有表头了,这样将使职工无法清楚工资条的数字对应什么具体名目。怎样才能给每个职工的工资条加上工资表表头呢?这里笔者将解决方案介绍给大家。
首先根据每个职工工资具有唯一电脑序号的特点,使用 VB 里的判断语句,让循环从第一个电脑序号开始,如果 Excel 表中相邻两行的电脑序号不同, 就在这两行之间插入一个空白行,然后使用循环语句,把表头的内容依次复制粘贴到每个空白行。
下面是具体的操作步骤:
1. 在 Excel 中打开需要制作工资条的工资表文件。
2. 打开“工具”/“宏”(如果在菜单中没有看见“宏”,让鼠标在菜单上稍停留或者按向下的双箭头就会出现),选择“Visual
Basic 编辑器”(图 1)打开 VBA 编辑器窗口,在 VBAProject 的工程资源管理器中双击 Sheet1,会出现代码编辑窗口,在代码编辑窗口输入如下代码(图 2):
为 2564)
600] * 2
Sub gongzitiao()
Application.ScreenUpdating = False
'为避免破坏表一,将表一内容完整复制到表二Sheets(1).[A1].CurrentRegion.Copy Sheets(2).[A1]
'定义循环变量的最大值不小于表二中职工数的二倍(我校职工总数a = (Application.WorksheetFunction.CountA(Sheets(2).[a1:a2
'如果第一列(职工的工资电脑序号)上下单元格的值不相等,则在它
们之间插入一个空白行
For i = 3 To a
If Sheets(2).Cells(i,1)<>Sheets(2).Cells(i + 1,1) And (S heets(2).Cells(i, 1) <> "") Then
Sheets(2).Rows(i + 1).Insert End If
'如果第一列中的单元格为空,则将表中[A2:M2](工资清单表头项目)
复制到此行
If Sheets(2).Cells(i,1) = "" Then Sheets(2).[A2:M2].Copy Sheets(2).Cells(i,1) End If
Next
Application.ScreenUpdating = True
End Sub
3. 检查源代码编辑无误后,在 VBA 窗口中打开菜单“运行”/“运行宏”,将弹出“宏”窗口,你只需单击“运行”即可。
4. 待宏运行完毕,再回到 Excel,单击工资表下方的“Sheet2”, 于是在每两个相邻职工间就插入了工资清单项目(图 3),再用打印机打印并裁条后,就可以发放给每位职工了。
该操作在 Excel 2000 下调试通过
两行间插入空白行:
Sub Macro1() For i = 2 To 99
If Cells(i, 1) <> Cells(i - 1, 1) Then
If Cells(i, 1) <> "" Then Rows(i).Insert Shift:=xlDown: i = i + 1 End If
Next End Sub
Sub kongbai()
Application.ScreenUpdating = False Sheets(1).[A1].CurrentRegion.Copy Sheets(3).[A1] a = 3000
For i = 2 To a
If Sheets(3).Cells(i, 2) <> Sheets(3).Cells(i + 1, 1) And (Sheets(3).Cells(i, 2) <> "") Then Sheets(3).Rows(i + 1).Insert
End If
Next
Application.ScreenUpdating = True End Sub
文档下载《2020EXCEL工资条VB制作方法》
上一篇:优秀作文《财富》范文【5篇】
下一篇:EXCEL自动生成工资条方法