1、将表格另存为启用宏的工作表(*.xlsm)
2、新建工作表,命名为汇总,在表头右键-查看代码-进入VBA编辑器
3、将以下代码复制到编辑器中:Sub 合并汇总()Application.DisplayAlerts = False '禁止合并单元格时出现警告'以下为合并表格Dim sht As Worksheet, xrow As IntegerFor Each sht In Worksheets If sht.Name <> ActiveSheet.Name Then sht.UsedRange.Copy '复制整表 ActiveSheet.Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas '从第一个空行选择性粘贴 End IfNext'以下删除第一行和多余的标题行Rows(1).DeleteDim x As IntegerFor x = 2 To UsedRange.Rows.CountIf Cells(x, 1) = "姓名" Then Rows(x).DeleteEnd IfNext x'以下为排序heng = UsedRange.Rows.Countlie = UsedRange.Columns.CountRange(Cells(2, 1), Cells(heng, lie)).Sort Key1:=Range("B1"), Key2:=Range("A1")'以下为合并同名单元格Dim i As IntegerDim first As IntegerDim last As Integerfirst = 2last = 2For i = 2 To UsedRange.Rows.CountIf Cells(i, 1) = Cells((i + 1), 1) ThenElselast = iCells(first, 6) = Application.Sum(Range(Cells(first, 6), Cells(last, 6))) '计算同名的总工资Range(Cells(first, 1), Cells(last, 1)).SelectSelection.Merge '合并姓名Range(Cells(first, 6), Cells(last, 6)).SelectSelection.Merge '合并工资first = i + 1End IfNext iEnd Sub
4、点击运行按钮
5、运行结果如下