ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 461|回复: 13

汇总不同工作表资料-每张工作表明细人数不一样, 顺序不一样

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-14 15:26 | 显示全部楼层 |阅读模式
工作表名称:
汇总表  (将每一个的工作表考勤明细(108-01~108-12工作表), 目的要将同员工编号的假别统计在汇总表的各个假别栏名)
108-01 ~ 108-12 (是每个月的考勤明细)
问题:
1.  12个月的表的人数不一样,顺序不一样,有重名的, 也有新加的员工编号与人名
2.. 因此我利用公式的名称管理员, 将每一张工作表的员工考勤明细, 做为将在汇总表的各假种别栏名, 欲做统计各个明细表中的, 因人数及顺序不一, 有重名的, 有新增人员名称的, 做为它的统计来源范围
3. 如果用以定义公式名称理员将每张工作表, 处理工作表数据明细不能一致(以解决每张工作表的列数, 行数不一, 以及人员编号不能一致性)
3 要怎么用以VBA程序写法108-01 ~ 108-12 , 12个考勤工作表, 汇总到汇总表中的各个假种别栏名的统计?

(用函数耗费资源太大)

108范例.rar

414.73 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2020-1-14 16:43 | 显示全部楼层
有重名,你以哪个关键字汇总呢?员工编号吗?

TA的精华主题

TA的得分主题

发表于 2020-1-14 16:56 | 显示全部楼层
Sub KaoQinJiSuan()
Dim Arr, K, i, Brr(1 To 1000000, 1 To 17), K0, m, n
K0 = 0
For i = 2 To Sheets.Count
Arr = Sheets(i).Range("b3:r" & Sheets(i).[b65536].End(3).Row)

K = UBound(Arr, 1)
'ReDim Brr(1 To UBound(Arr, 1), 1 To 17)
  For n = 1 To K
    For m = 1 To 17
      Brr(n + K0, m) = Arr(n, m)
    Next m
  Next n
K0 = K0 + K
Erase Arr
Next i
     Set d = CreateObject("Scripting.Dictionary")
     For i = 1 To UBound(Brr)
       If d(Brr(i, 1)) = "" Then d(Brr(i, 1)) = Brr(i, 1)
     Next i
K = d.Count
[b3].Resize(K, 1) = Application.Transpose(d.KEYS)
Set d = Nothing
Dim Crr(1 To 10000, 1 To 18)

For i = 1 To K
   Crr(i, 1) = i
   Crr(i, 2) = Cells(i + 2, 2)
   For n = 1 To UBound(Brr, 1)
   If Crr(i, 2) = Brr(n, 1) Then
   Crr(i, 3) = Brr(n, 2)
   Crr(i, 4) = Brr(n, 3)
     For m = 4 To 17
     Crr(i, m + 1) = Crr(i, m + 1) + Brr(n, m)
     Next m
    End If
   Next n
Next i

[a3:r61].ClearContents
[a3].Resize(K, 18) = Crr

End Sub

108范例.rar

451.09 KB, 下载次数: 27

评分

参与人数 1鲜花 +2 收起 理由
elaine_lee + 2 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-1-15 09:16 | 显示全部楼层
本帖最后由 y1983y 于 2020-1-15 09:19 编辑

应该是你要的结果

TA的精华主题

TA的得分主题

发表于 2020-1-15 09:18 | 显示全部楼层
本帖最后由 y1983y 于 2020-1-15 11:18 编辑

是要这样的结果吧!正确给好评啊!

已重新上传

108范例.rar

416.88 KB, 下载次数: 96

评分

参与人数 1鲜花 +1 收起 理由
elaine_lee + 1 感谢帮助

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-15 11:14 | 显示全部楼层
y1983y 发表于 2020-1-15 09:18
是要这样的结果吧!正确给好评啊!

解压档好像有问题,
能否再传上?

TA的精华主题

TA的得分主题

发表于 2020-1-15 11:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-1-15 11:18 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-16 13:44 | 显示全部楼层
koala219 发表于 2020-1-14 16:56
Sub KaoQinJiSuan()
Dim Arr, K, i, Brr(1 To 1000000, 1 To 17), K0, m, n
K0 = 0

谢谢前辈指教,
后辈及感谢, 认真学习

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-16 13:49 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

关注官方微信,高效办公专列,每天发车

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2020-10-21 03:30 , Processed in 0.085763 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2021 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表