可能大家忽视了一点,Excel是我们日常办公中使用最多的工具,所以,学好Excel并加以运用,一定能提升你的工作效率,比如Excel VBA可以用代码实现自动化办公,下面举一个Excel VBA批量生成工资条的办公小案例。
批量生成工资条这种方法适于一些保密性较高数据,如薪酬、加班补贴等数据,需要将数据批量处理为单一数据,这里就可以使用 Excel VBA 来处理,如果你不了解VBA的使用,可参考前一节内容:Excel VBA:批量合并数据
1.数据演示
如下是一张工资表,包含每位员工的基本工资和提成点,由于企业中对于员工工资都有保密制度,现需要将每一位员工自己的基本工资和提成点分别发给对应的员工,常规做法是手动复制粘贴,这种方法效率很慢。
2.编写VBA
接下来,我将使用Excel VBA编写代码批量生成员工工资条,在 Excel 中点击 "开发工具" 选项卡,点击 "Visual Basic" 按钮,打开 VBA 编辑器,VBA代码都是写在VBA 编辑器运行。
如下即为VBA 编辑器的操作界面。
在 VBA 编辑器窗口中,右键 "VBAProject" ,依次点击 "插入" -> "模块",在插入的模块中编写 VBA 代码。
VBA代码在模块里面编写和运行。
如下为编写的VBA代码,代码相对比较长,有一定的学习门槛和难度,如果看不明白的话,可以直接复制粘贴使用。
Sub 批量生成工资条()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim lastRow As Long
Dim currentRow As Long
Dim i As Long
Dim j As Integer
Dim titleArray As Variant
' 定义原数据所在的工作表
Set wsSource = ThisWorkbook.Sheets(1) ' 假设工资数据在第1个Sheet中
' 获取源数据的最后一行
lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
' 删除之前生成的工资条表(如果存在)
On Error Resume Next
Application.DisplayAlerts = False
Set wsTarget = ThisWorkbook.Sheets("批量生成工资条")
If Not wsTarget Is Nothing Then
wsTarget.Delete
End If
Application.DisplayAlerts = True
On Error GoTo 0
' 新建一个Sheet用于存储批量生成的工资条
Set wsTarget = ThisWorkbook.Sheets.Add
wsTarget.Name = "批量生成工资条"
' 定义标题数组
titleArray = Array("姓名", "性别", "学历", "基本工资", "业绩", "提成点")
' 初始化工资条生成起始行
currentRow = 1
' 遍历每一行员工数据
For i = 2 To lastRow
' 输出标题
For j = 0 To UBound(titleArray)
wsTarget.Cells(currentRow, j + 1).Value = titleArray(j)
' 设置标题行格式
With wsTarget.Cells(currentRow, j + 1)
.Font.Bold = True
.Font.Name = "微软雅黑"
.Interior.Color = RGB(192, 192, 192) ' 设置背景为灰色
End With
Next j
' 输出每个员工的工资数据
For j = 1 To 6 ' 假设源数据有6列
wsTarget.Cells(currentRow + 1, j).Value = wsSource.Cells(i, j).Value
' 设置数据行格式
With wsTarget.Cells(currentRow + 1, j)
.Font.Bold = True
.Font.Name = "微软雅黑"
End With
Next j
' 每个工资条占两行,移动到下一个工资条的起始行
currentRow = currentRow + 3
Next i
MsgBox "工资条批量生成完成!", vbInformation
End Sub
3.VBA运行
将VBA代码复制粘贴到到 VBA 编辑器中,点击 "运行" 按钮,或按下 F5 键运行该脚本。
这里将拆分后的工资条新建了一个名为“批量生成工资条”的sheet表来保存,生成工资条后就可以打印下发。
4.保存VBA
为了将编写的VBA可以永久保存,可以将工作簿保存为 *.xlsm 格式,点击"文件"选项,在保存类型中选择"Excel启用宏的工作簿",即可保存宏。
如果有新员工添加进来,只要在行末尾继续追加数据,然后,在VBA编辑器界面点击运行,即可一键批量生成工资条。
通过这节课的学习,我们成功使用 Excel VBA 实现了批量生成工资条的功能,这个自动化过程不仅减少了手动操作的繁琐,还极大提升了工作效率,同时,还能更好地理解和应用Excel VBA 知识,帮助我们提高工作效率。