Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2765|回复: 6

[已解决]部门员工分派明细统计表

[复制链接]
发表于 2010-10-1 22:27 | 显示全部楼层 |阅读模式

部门员工分派明细统计表

我们公司总共有10名技术人员,每天都要派出几名为客户提供上门服务。这10名员工的编号是从1--10,老总根据部门主管提供的分派表统计每一个员工的分派情况(出外勤多少天,在单位值守多少天,并据此核算工资)。每天出外勤的员工(这是由主管根据客户需求情况统一分派的),把出外勤的员工的编号从小到大排列在左边,并统计出人数,把值守员工的编号也从小到大排列在右边,同样统计出人数。这样逐日登记,到月终提交到老总处。现在我想设计一个程序,根据左边出外勤员工的编号,自动把值守员工的编号按顺序排在右边并统计出人数(登记表见附件),这样的代码应如何编写?敬请各位老师指教,谢了。
Frd4T1I3.rar (1.5 KB, 下载次数: 28)
发表于 2010-10-1 22:53 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2010-10-1 23:14 | 显示全部楼层

这个情况还没有出现过,一般不会。有的时候一天要分派8个人,甚至10个人全派出去也忙不过来呢。
[此贴子已经被作者于2010-10-1 23:17:50编辑过]
回复

使用道具 举报

发表于 2010-10-1 23:20 | 显示全部楼层

没思路,等老师们来回答,跟踪学习。

回复

使用道具 举报

发表于 2010-10-1 23:38 | 显示全部楼层    本楼为最佳答案   

Sub justtest()
  Dim dic, i&, j%, k%
  Set dic = CreateObject("scripting.dictionary")
    Range("m:x").ClearContents
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
      For j = 1 To 10
       If Not dic.exists(j) Then dic.Add j, ""
      Next j
      For k = 1 To 8
        If dic.exists(Cells(i, k).Value) Then dic.Remove Cells(i, k).Value
      Next k
      Cells(i, 13).Resize(1, dic.Count) = dic.keys
      Cells(i, 24) = dic.Count
    Next i
    Set dic = Nothing
End Sub
回复

使用道具 举报

 楼主| 发表于 2010-10-2 13:00 | 显示全部楼层

这段代码我试了一下,效果很好。只是其中有几行我不太清楚,能否给我解释一下?

Range("m:x").clearcontents这行代码是什么含义?

还有if dic.exists(cells(i,k).value) then dic.Remove cells(i,k).Value这行代码的含义是什么?谢谢了

回复

使用道具 举报

发表于 2010-10-2 13:15 | 显示全部楼层

第一个是清除M至X列的内容,方便数据更新后返回结果

如果这个关键字存在,那么就在字典中去除此关键字。

[em04]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 19:13 , Processed in 0.287087 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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