【VBA研究】如何简单的汇总一年12张Excel工资表
作者: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工资表相关推荐
- excel工资表汇总怎么做?
今天跟大家分享一下excel工资表汇总怎么做? 1.打开演示文件,分别是某公司两个部门工资表,现在我们想要汇总这两个部门工资情况. 2.首先我们选中表格数据区域,然后点击如下图选项 3.点击[汇总拆分 ...
- excel工资表汇总的快速方法
1.工作簿中含有含三个工作表,分别是1月至3月的的工资,.现在领导要求统计出每位员工三个月的工资总和. 2.选中B1:E10单元格区域 3.点击下图选项(Excel插件,百度即可了解详细的下载安装 ...
- vba mysql·教程_Excel VBA ADO SQL入门教程004:SQL中的Excel表
1. 上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下: SELECT 字段名 FROM 表名 当时我们说,FROM关键词指明了要获取字段信息的表的名称.倘若数据源是Excel表格,则需要 ...
- base64编码 vba_【VBA研究】如何用Base64 编解码方法实现简单的加解密
Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码,将数据变成字符串实现文本传输.由于编码简单,所以很容易实现,代码也是现成的.利用这个编码规则可以实现简单的加解密.编解码方 ...
- vba ado返回集合_利用ADO,实现同一文件夹下多个EXCEL工作表的数据汇总
大家好,今天继续讲解<VBA数据库解决方案>,今日讲解的是第37讲,利用ADO,实现同一文件夹下多个EXCEL工作表的数据汇总.最近的内容实用性比较强,如今日的内容,只把需要汇总的EXCE ...
- Excel VBA 多条件筛选及汇总统计
Excel VBA 多条件筛选 AdvancedFilter 汇总统计 sumproduct Range与Array交换 在日常工作中,面对Excel表格数据,为了分类进行统计,通过对表格数据筛选获取 ...
- Excel VBA实现的简单电子病历管理
Excel VBA实现的简单电子病历管理 界面示例 主界面只放了两个button,用Excel自带的筛选功能进行检索 新建病例 Sub 新建病例() ' ' ' Dim i As Integer Di ...
- VBA用字典实现分类汇总(二)
在VBA中,字典是一个很重要的概念,有点你我们生活中用到的字典,(你可以通过pinyin或部首,查找到某个字),VBA中的字典,可以根据一个关键字(key)查询一个值(item),且关键字(key)是 ...
- php pjax案例,jQuery pjax简单示例汇总
pjax 是一个jQuery插件,它使用 ajax 和 pushState 来实现快速的浏览体验,包括真正的固定链接,页面标题和工作返回按钮.本文主要和大家分享jQuery pjax简单示例汇总,希望 ...
最新文章
- 常用特征工程方法总结
- k8s系列~mgr的应用
- Android权限处理,Android校招面试指南
- 笔记-项目沟通管理-如何改进项目沟通
- 小程序直播间报错:{“errmsg“:“the current room status does not allow this operation rid:“,“errcode“:300023}
- Python核心数据类型之字典15
- 如何在 ASP.NET Core 中为同一接口配置不同的实现
- 【资料篇】你需要掌握SEO的8个常用知识点
- python 编码解码原理_Python JSON编解码方式原理详解
- 自动化,Win32API、UIA和MSAA
- Delphi通过Map文件查找内存地址出错代码所在行
- 计算机科学创新大赛,“互联网+”大学生创新创业大赛
- Excel常用函数公式20例
- 北语计算机保研,北京中医药大学2021届保研率14.4%,北京语言大学2021推免率10.8%...
- 【gp数据库】统计常用窗口函数详解
- 页游游戏市场发展随笔
- 模拟信道和数字信道的区别
- 数组 reduce 简介及使用场景
- 对待事物,乐观积极。
- linux中24点游戏下载,怀旧24点官网版-怀旧24点游戏下载v2.0.0-Linux公社