ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助大神帮忙!!用VBA汇总数据到总表中,不胜感谢!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-2-24 09:07 | 显示全部楼层 |阅读模式
本帖最后由 努力学习168 于 2024-2-24 09:49 编辑

因工作原因,经常复制表格中数据到一个表中进行计算,复制太慢,搜了其他贴子没有找到适合的VBA,
怕耽误老师的时间,需求做了简化,还是老师帮忙解决下,不胜感谢!

说明:
(图1),某某总表是计算结果后的表格,A,B,C表格是我需从数据源文件夹中导入的表格。(可能不止ABC表,或者有10几个表)
需从数据文件夹中导入一一对应的文件名的表格。ED,,表可能在数据源文件夹不存在,所以导入时不需做修改其他动作。
总结:
导入时选择数据源文件夹,只导入对应相同名字表格即可。因为数据源文件夹很多个不同的数据表格。
数据源文件夹A,B,C表格名称和总表中的分表名是一致的。(图2):

图1: image.png

图2: image.png


模拟数据.rar

55.28 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2024-2-24 09:13 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-2-24 09:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
附件先压缩再上传

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-24 10:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 fzxba 于 2024-2-24 10:21 编辑

模拟数据.zip (82.93 KB, 下载次数: 19)


补一段文本_假设有标题.zip (939 Bytes, 下载次数: 14)

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-24 10:25 | 显示全部楼层
你对文件夹,工作簿,工作表都没有区得了。

TA的精华主题

TA的得分主题

发表于 2024-2-24 14:27 | 显示全部楼层
附件供参考。。。

模拟数据.7z

59.57 KB, 下载次数: 22

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-2-24 14:27 | 显示全部楼层
参与一下。。。
  1. Sub ykcbf()  '//2024.2.24
  2.     Dim wb, ws
  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     Set fso = CreateObject("Scripting.FileSystemObject")
  6.     Set d = CreateObject("Scripting.Dictionary")
  7.     Set ws = ThisWorkbook
  8.     Set sh = ws.Sheets("某某总表")
  9.     For Each sht In ws.Sheets
  10.         If sht.Name <> sh.Name Then d(sht.Name) = ""
  11.     Next
  12.     With Application.FileDialog(msoFileDialogFolderPicker)
  13.         .Title = "请选择文件夹"
  14.         .InitialFileName = ThisWorkbook.Path & ""
  15.         If .Show = -1 Then
  16.             p = .SelectedItems(1) & ""
  17.         End If
  18.     End With
  19.     p1 = p & "数据源文件"
  20.     For Each f In fso.GetFolder(p).Files
  21.         If f.Name Like "*.xls*" Then
  22.             fn = fso.GetBaseName(f)
  23.             If d.exists(fn) Then
  24.                 Set wb = Workbooks.Open(f, 0)
  25.                 With wb.Sheets(1)
  26.                     .Name = fn
  27.                     .Cells.Copy ws.Sheets(fn).[a1]
  28.                     wb.Close False
  29.                 End With
  30.             End If
  31.         End If
  32.     Next
  33.     Application.ScreenUpdating = True
  34.     MsgBox "OK!"
  35. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 10:28 | 显示全部楼层

谢谢老师帮忙。谢谢!
试用了,在导入原数据后有点问题,大致是,原数据表格如第1列或者第1行无数值时导入后会随机分配一个数值。感谢! image.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 10:43 | 显示全部楼层
ykcbf1100 发表于 2024-2-24 14:27
附件供参考。。。

谢谢老师帮忙解决,谢谢!
目前试用无发现问题,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-25 10:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 13:56 , Processed in 0.049348 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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