作者:iamlaosong

这个事情本身并不是什么难题,只是把12个月的月表数据按姓名进行合计,但是每个月中人员并不相同,有走的,也有新加入的。开始想用公式实现,实现时发现非常麻烦,主要是人员不定,就算弄好了,估计速度也成问题。还有一个办法,就是将12张表合并到一张表中,再按姓名进行分类汇总或者做个数据透视表,但手工合并也挺费工夫。用代码实现,自然简单,不涉及什么高深的技术,唯一要注意的就是采用数组,这样处理速度快。

如上图,将12个月中相关列按姓名进行汇总,点击按钮即可完成,速度很快。代码如下:

Sub HuiZong()Dim arrXMs(), arrAAs(), arrAHs(), arrAMs()Dim arrXMt(1000, 5)Dim MaxRow, RYNo, RYCur As IntegerDim stName As StringFor mm = 1 To 12stName = mm & "月"RYCur = Sheets(stName).Range("G3").End(xlDown).RowarrXMs() = Sheets(stName).Range("G3:G" & RYCur).ValuearrAAs() = Sheets(stName).Range("AA3:AA" & RYCur).ValuearrAHs() = Sheets(stName).Range("AH3:AH" & RYCur).ValuearrAMs() = Sheets(stName).Range("AM3:AM" & RYCur).ValueRYCur = RYCur - 2If mm = 1 Then'1月直接赋值For k = 1 To RYCurarrXMt(k, 1) = arrXMs(k, 1)arrXMt(k, 2) = arrAAs(k, 1)arrXMt(k, 3) = arrAHs(k, 1)arrXMt(k, 4) = arrAMs(k, 1)arrXMt(k, 5) = mm & " "Next kRYNo = RYCurElse'其他月份汇总For k = 1 To RYCurFor kk = 1 To RYNoIf arrXMt(kk, 1) = arrXMs(k, 1) Then Exit ForNext kkIf kk > RYNo Then'没有找到,新进人员,增加一条记录arrXMt(kk, 1) = arrXMs(k, 1)arrXMt(kk, 2) = arrAAs(k, 1)arrXMt(kk, 3) = arrAHs(k, 1)arrXMt(kk, 4) = arrAMs(k, 1)arrXMt(kk, 5) = mm & " "RYNo = kkElse'找到,进行汇总arrXMt(kk, 2) = arrXMt(kk, 2) + arrAAs(k, 1)arrXMt(kk, 3) = arrXMt(kk, 3) + arrAHs(k, 1)arrXMt(kk, 4) = arrXMt(kk, 4) + arrAMs(k, 1)arrXMt(kk, 5) = arrXMt(kk, 5) & mm & " "End IfNext kEnd IfNext mm'将结果填入表中stName = "汇总"With Sheets(stName)MaxRow = .UsedRange.Rows.CountIf MaxRow > 2 Then.Range("A3:E" & MaxRow).ClearContentsEnd IfFor kk = 1 To RYNoFor k = 1 To 5.Cells(kk + 2, k) = arrXMt(kk, k)Next kNext kkEnd Withmsg = MsgBox("汇总完毕,共汇总" & RYNo & "个人员!", vbOKOnly, "AHEMS:iamlaosong")End Sub

【VBA研究】如何简单的汇总一年12张Excel工资表相关推荐

  1. excel工资表汇总怎么做?

    今天跟大家分享一下excel工资表汇总怎么做? 1.打开演示文件,分别是某公司两个部门工资表,现在我们想要汇总这两个部门工资情况. 2.首先我们选中表格数据区域,然后点击如下图选项 3.点击[汇总拆分 ...

  2. excel工资表汇总的快速方法

    1.工作簿中含有含三个工作表,分别是1月至3月的的工资,.现在领导要求统计出每位员工三个月的工资总和. 2.选中B1:E10单元格区域 ​ 3.点击下图选项(Excel插件,百度即可了解详细的下载安装 ...

  3. vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表

    1. 上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下: SELECT 字段名 FROM 表名 当时我们说,FROM关键词指明了要获取字段信息的表的名称.倘若数据源是Excel表格,则需要 ...

  4. base64编码 vba_【VBA研究】如何用Base64 编解码方法实现简单的加解密

    Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码,将数据变成字符串实现文本传输.由于编码简单,所以很容易实现,代码也是现成的.利用这个编码规则可以实现简单的加解密.编解码方 ...

  5. vba ado返回集合_利用ADO,实现同一文件夹下多个EXCEL工作表的数据汇总

    大家好,今天继续讲解<VBA数据库解决方案>,今日讲解的是第37讲,利用ADO,实现同一文件夹下多个EXCEL工作表的数据汇总.最近的内容实用性比较强,如今日的内容,只把需要汇总的EXCE ...

  6. Excel VBA 多条件筛选及汇总统计

    Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...

  7. Excel VBA实现的简单电子病历管理

    Excel VBA实现的简单电子病历管理 界面示例 主界面只放了两个button,用Excel自带的筛选功能进行检索 新建病例 Sub 新建病例() ' ' ' Dim i As Integer Di ...

  8. VBA用字典实现分类汇总(二)

    在VBA中,字典是一个很重要的概念,有点你我们生活中用到的字典,(你可以通过pinyin或部首,查找到某个字),VBA中的字典,可以根据一个关键字(key)查询一个值(item),且关键字(key)是 ...

  9. php pjax案例,jQuery pjax简单示例汇总

    pjax 是一个jQuery插件,它使用 ajax 和 pushState 来实现快速的浏览体验,包括真正的固定链接,页面标题和工作返回按钮.本文主要和大家分享jQuery pjax简单示例汇总,希望 ...

最新文章

  1. 常用特征工程方法总结
  2. k8s系列~mgr的应用
  3. Android权限处理,Android校招面试指南
  4. 笔记-项目沟通管理-如何改进项目沟通
  5. 小程序直播间报错:{“errmsg“:“the current room status does not allow this operation rid:“,“errcode“:300023}
  6. Python核心数据类型之字典15
  7. 如何在 ASP.NET Core 中为同一接口配置不同的实现
  8. 【资料篇】你需要掌握SEO的8个常用知识点
  9. python 编码解码原理_Python JSON编解码方式原理详解
  10. 自动化,Win32API、UIA和MSAA
  11. Delphi通过Map文件查找内存地址出错代码所在行
  12. 计算机科学创新大赛,“互联网+”大学生创新创业大赛
  13. Excel常用函数公式20例
  14. 北语计算机保研,北京中医药大学2021届保研率14.4%,北京语言大学2021推免率10.8%...
  15. 【gp数据库】统计常用窗口函数详解
  16. 页游游戏市场发展随笔
  17. 模拟信道和数字信道的区别
  18. 数组 reduce 简介及使用场景
  19. 对待事物,乐观积极。
  20. linux中24点游戏下载,怀旧24点官网版-怀旧24点游戏下载v2.0.0-Linux公社

热门文章

  1. 【mysql是怎样运行的】-客户端与服务器连接
  2. python画图没有线_python画图吐血大集合
  3. 【CSV】下载的csv文件打开乱码
  4. 视频教程-【吴刚】网页元素设计WUI初级入门视频教程-UI
  5. cefsharp加入flash插件
  6. 蓝桥云课linux入门13:正则表达式基础
  7. CAD2019中创建基于3D图当前视图所有对象的二维表示
  8. 迭代硬阈值(IHT)算法解决CS优化目标函数
  9. C++面试题之虚函数(表)实现机制
  10. 用MNE包进行Python脑电数据处理