小程序开发公司 Excel VBA【案例】多文献多使命表数据汇总:职工简历信息批量汇总
发布日期:2024-11-05 08:55 点击次数:64
现实纲领小程序开发公司
多个文献多个使命表数据汇总字典、数组轮廓利用全球好,我是冷水沏茶。
今天在论坛上看到一个乞助贴:
[乞助] 迫切乞助乞助 多个职工简历表合并生成一个汇总表
奖号类型判断:近7次奇偶奇与小小小开出之后,下期组三出现6次,组六出现8次,其中组六走势较冷,本期防组六出现。另外,重号开出比例较高,本期防再出,参考号码3。
个位:上期为3,质号,合号最近两周相对走冷,遗漏4次,本期关注合号,参考8。
刻下有200多个职工的简历信息单表(图1),一东谈主一个文献汇总到一个信息汇总表(图2)。
他的数据表是这么的:
图片
汇总表如下,每东谈主一札纪录,也便是把明细表给它改为尺度的二维表:
图片
对于文献汇总合并,咱们共享过案例【文献合并器具】、【Excel表合并】,合并对象齐是尺度的二维表,不适用今天这个案例。
今天这个问题看上去不是很复杂,淌若系数东谈主齐是沟通次第,我的理由是“父亲”、“母亲”齐是全的,那就可以班师援用使命表单位格的位置来得回数据。
但我是不太心爱班师援用单位格地址这种神色的,写死了,生动性就差点,咱们写代码依然应该尽量辩论变化、膨大、容错、荒芜情况若何惩处等等。
基本念念路:
1、指定明细表文献夹,这里咱们默许是跟“汇总表”放在团结个文献夹下。
2、轮回文献夹中每一个文献,淌若是Excel文献,咱们就掀开它,把它赋值给使命簿对象wb。
3、咱们再轮回wb中的每个使命表ws,虽说他这个明细表中惟有一个使命表,但很厚情况下并非如斯,可能有其他表,使命表的称呼也可能各不沟通,是以咱们要轮回判断哪个使命表是咱们需要汇总的主义使命表。
小程序开发4、凭据明细表格的结构特征,咱们建设两个Range对象,rng1=A4:F5,小程序开发公司rng2=A6:F8。
5、咱们轮回rng1,找到“姓名”单位格,再用offset函数取其右侧单位格,职工姓名,咱们把它行为字典的key,用一个数组arr行为item。
6、咱们再离别轮回rng1与rng2,得回各个字段的值,填入arr,再把arr装回字典。
7、把字典的item写入主义使命表“汇总”。
图片
VBA代码
代码见第二条推文。
跋文小程序开发公司
1、代码写得比较冗长,我看到有东谈主只写了20几行,主要给与班师指定主义数据单位格地址的神色。正如我前边所说,我不太心爱这种神色,从某种进度上来说,裁减生动性,是以代码很长,也算老实守纪吧。2、另外,咱们还辩论了一些荒芜情况,比如,父亲、母亲惟有一札纪录的,好像轨则倒置的,齐不影响取数的准确性。3、昨天的案例【提真金不怕火最高学历】,有一又友留言,说代码可以简化一下,我询查了一下他的代码,念念路着实可以,在此基础上,我重新梳理了一下念念路,又精减了几行代码,与我昨天写的代码比拟,减少了一泰半:Sub 最高学历() Dim ws As Worksheet, lastRow As Integer Dim arr(), arrEduBg(), dic As Object, dkey As String, dic1 As Object Set ws = ThisWorkbook.Sheets("信息表") Set dic1 = CreateObject("Scripting.Dictionary") Set dic = CreateObject("Scripting.Dictionary") With ws lastRow = .UsedRange.Rows.Count arr = .Cells(2, 1).Resize(lastRow - 1, 3).Value End With arrEduBg = Array("高中", "专业", "本科", "硕士", "博士") For i = 0 To UBound(arrEduBg) dic1(arrEduBg(i)) = i Next For i = 1 To UBound(arr) If arr(i, 1) <> "" Then dkey = arr(i, 1) If Not dic.Exists(dkey) Then dic(dkey) = Array(arr(i, 1), arr(i, 2), arr(i, 3)) Else If dic1(arr(i, 3)) > dic1(dic(dkey)(2)) Then dic(dkey) = Array(arr(i, 1), arr(i, 2), arr(i, 3)) End If End If End If Next Sheets("学历表").Cells(2, 1).Resize(dic.Count, 3) = Application.Transpose(Application.Transpose(dic.items))End Sub好,今天就到这,咱们下期重逢。 本站仅提供存储工作,系数现实均由用户发布,如发现存害或侵权现实,请点击举报。
下一篇:没有了