ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 同心/ty

[求助] 求大师完善跨工作簿提数据并求和代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-5-27 03:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub test()
Set d = CreateObject("scripting.dictionary")
Dim Mypath, Myname As String
Dim wb  As Workbook
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With Sheets("Sheet1")
   r = .Cells(.Rows.Count, 5).End(3).Row
   For i = 7 To r
      d(.Cells(i, 5).Value) = i
   Next
End With
Mypath = ThisWorkbook.Path & "\"
Myname = Dir(Mypath & Myname)
Do While Myname <> ""
    If ThisWorkbook.Name <> Myname Then
      Set wb = GetObject(Mypath & Myname)
        With wb.Sheets(1)
            brr = .Range("F6").CurrentRegion.Resize(, 15)
            For i = 2 To UBound(brr)
              If d.exists(brr(i, 2)) Then
                 For j = 10 To 15
                    求和 = brr(i, j) + 求和
                 Next
                 ws.Cells(d(brr(i, 2)), 15) = 求和
                 求和 = 0
              End If
             Next
         End With
     End If
  Myname = Dir
Loop

              
            
   
End Sub

TA的精华主题

TA的得分主题

发表于 2023-5-27 03:43 | 显示全部楼层
练习一下,老程序

TA的精华主题

TA的得分主题

发表于 2023-5-27 07:23 来自手机 | 显示全部楼层
同心/ty 发表于 2023-5-26 23:14
老师,因基础表信息录入有不规范的地方,需求和那6列中有的单元格可能存在文本格式的数据,在我的事例中 ...

能存在文本格式的数据

最好能在输入环节避免,后期处理会比较方便

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-27 07:59 | 显示全部楼层
zpy2 发表于 2023-5-27 07:23
能存在文本格式的数据

最好能在输入环节避免,后期处理会比较方便

是的,因为基础数据表是各乡镇报上来的,有很多不规范。11楼代码我测试了一下,能规避文本数据,解决了我的问题,因为我的基础数据表不只是一个,若能在代码中再完善,运行时提示我去选择指定的基础信息表就好,好就更完美。谢谢老师。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-27 08:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mmwwdd 发表于 2023-5-27 03:42
Sub test()
Set d = CreateObject("scripting.dictionary")
Dim Mypath, Myname As String

老师,谢谢你的辛勤付出。代码很好,能规避文本数据,解决了我的问题。但我还有小要求不知能否帮我?因为我的基础数据表不只是一个,运行时提示我去选择指定某个基础信息表就好。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-27 08:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
mmwwdd 发表于 2023-5-27 03:42
Sub test()
Set d = CreateObject("scripting.dictionary")
Dim Mypath, Myname As String

老师,还有一个问题就是我例子中基础信息表我删除了2个身份证号,在统计中能顺利配对求和。但我把基础信息表F列姓名也删除,也就是说基础信息表可能存在空行情况,那代码配对求和受到影响,不能顺利进行所有的。因为基础数据是来自各乡镇,信息录入不规范,能解决有空行,自动忽略就向下配对求和为好。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-27 09:31 | 显示全部楼层

老师,代码完美,规避了我2个问题,1.基础信息表可能存在空行问题,2.基础信息表O至T列中数据可能有文本格式的数据。代码完全配对求和顺利通过。老师,如果有时间能完善一下代码,我的要求是提示我选择指定信息表去配对就好,因为我可能有很多信息表,我每次操作只需选其中一个来配对求和。谢谢老师的辛勤付出。

TA的精华主题

TA的得分主题

发表于 2023-5-27 09:52 | 显示全部楼层
不知道能不能解决你的问题,记得送上免费的花花

新建文件夹.rar

47.68 KB, 下载次数: 8

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-5-27 10:09 | 显示全部楼层
同心/ty 发表于 2023-5-27 09:31
老师,代码完美,规避了我2个问题,1.基础信息表可能存在空行问题,2.基础信息表O至T列中数据可能有文本 ...

参考 18楼老师代码即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-27 10:40 | 显示全部楼层
不知道为什么 发表于 2023-5-27 10:09
参考 18楼老师代码即可。

老师,我测试了18楼代码,能完成我要的效果,但不友好的地方是要增设辅助列6列,我表中F列-N列是有数据的。我还是想从你写的代码中完善。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 16:24 , Processed in 0.041670 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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