如何用Excel VBA计算并合并同一姓名的工资
浏览量:4462
时间:2024-07-19 14:43:58
作者:采采
在日常工作中,经常会遇到以下情况:
- 工资表按部门分为多个表,不同的部门会有同名的人。
- 同一部门中的某个人可能担任不同的职位,他的工资就分在几行里。
- 现在需要将所有部门人员的工资汇总到一个表中,如果某个人的工资占据了多行,则需要合并姓名列和工资。
下面是具体的操作步骤:
步骤1:另存为启用宏的工作表
首先将工资表另存为启用宏的工作表(*.xlsm)。
步骤2:新建工作表并命名为汇总
在Excel中新建一个工作表,并将其命名为“汇总”。
步骤3:复制VBA代码
右键点击汇总表的表头,选择“查看代码”进入VBA编辑器。将以下代码复制到编辑器中:
Sub 合并汇总() Application.DisplayAlerts False '禁止合并单元格时出现警告 '以下为合并表格 Dim sht As Worksheet, xrow As Integer For Each sht In Worksheets If <> Then '复制整表 ActiveSheet.Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:xlPasteFormulas '从第一个空行选择性粘贴 End If Next '以下删除第一行和多余的标题行 Rows(1).Delete Dim x As Integer For x 2 To If Cells(x, 1) "姓名" Then Rows(x).Delete End If Next x '以下为排序 heng lie Range(Cells(2, 1), Cells(heng, lie)).Sort Key1:Range("B1"), Key2:Range("A1") '以下为合并同名单元格 Dim i As Integer Dim first As Integer Dim last As Integer first 2 last 2 For i 2 To If Cells(i, 1) Cells((i - 1), 1) Then '计算同名的总工资 Cells(first, 6) (Range(Cells(first, 6), Cells(last, 6))) '合并姓名 Range(Cells(first, 1), Cells(last, 1)).Select '合并工资 Range(Cells(first, 6), Cells(last, 6)).Select first i 1 End If Next i End Sub
步骤4:运行代码
点击运行按钮,执行上述代码。
步骤5:查看结果
运行结果如下所示。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。