Excel精英培训网

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

[已解决]请问如何快速提取多个工作表中同一列数据

[复制链接]
发表于 2014-12-11 22:09 | 显示全部楼层 |阅读模式
本帖最后由 ymdhy 于 2014-12-14 21:31 编辑

RT,现有很多个工作表,表内格式是一样的,想把所有工作表中的L列内容汇总到一个表中,请问如何快速提取?

附件举了个例子,实际中有很多张,还会不断增加,一个个复制粘贴太麻烦,请教简单方法
要求.rar (24.37 KB, 下载次数: 258)
发表于 2014-12-11 22:28 | 显示全部楼层
上附件,说清要求才好说话
要不然说半天还是纸上谈兵
关键是这么笼统练兵也没法谈了
回复

使用道具 举报

 楼主| 发表于 2014-12-11 22:55 | 显示全部楼层
tgydslr 发表于 2014-12-11 22:28
上附件,说清要求才好说话
要不然说半天还是纸上谈兵
关键是这么笼统练兵也没法谈了

已上附件,举了个例子说明,先谢谢了!
回复

使用道具 举报

发表于 2014-12-12 08:39 | 显示全部楼层
是这样?
55.gif
回复

使用道具 举报

发表于 2014-12-12 08:53 | 显示全部楼层    本楼为最佳答案   
要求.rar (34.61 KB, 下载次数: 1520)
回复

使用道具 举报

 楼主| 发表于 2014-12-12 22:21 | 显示全部楼层
qh8600 发表于 2014-12-12 08:53
楼主试试,点击按钮就可以

vba只懂些皮毛,中间看得不太懂,能否解释下呢?
回复

使用道具 举报

发表于 2014-12-13 08:43 | 显示全部楼层
ymdhy 发表于 2014-12-12 22:21
vba只懂些皮毛,中间看得不太懂,能否解释下呢?
  1. Sub demo()
  2.     Dim ar, cr, Str As String, FilePath As String, i As Integer, j As Integer, n As Long
  3.     Application.DisplayAlerts = False
  4.     Application.ScreenUpdating = False
  5.     FilePath = ThisWorkbook.Path & ""           '获取当前工作簿路径
  6.     Str = Dir(FilePath & "*.xls", vbNormal)      '把工作簿名赋值变量
  7.     ReDim cr(1 To 60000, 1 To 18)                '重新定义数组大小
  8.     Do While Str <> ""                           '遍历当前工作簿所在的文件夹
  9.         If Not (Str = "要求.xlsm") Then          '判断工作簿名是否是要求,不是就执行下面代码
  10.             Workbooks.Open FilePath & Str        '打开工作簿
  11.             With Workbooks(2)
  12.                 ar = .Sheets(1).Range("A1").CurrentRegion     '把工作簿第一个工作表与A1单元格相连的单元格赋值给数组
  13.                 .Close savechange = True                      '关闭工作簿
  14.             End With
  15.             For i = 1 To UBound(ar)                           '循环数组
  16.                 n = n + 1
  17.                 For j = 1 To UBound(ar, 2)
  18.                     cr(n, j) = ar(i, j)                        '循环把所有工作簿的第一个表的数据放入新的数组
  19.                 Next
  20.             Next
  21.         End If
  22.         Str = Dir
  23.     Loop
  24.     Application.DisplayAlerts = True
  25.     Application.ScreenUpdating = True
  26.     Range("a1").Resize(n, 2) = cr                                 '把新数组写入当前工作簿的第一个表的a1单元格为顶点的区域
  27. End Sub
复制代码
回复

使用道具 举报

发表于 2016-1-8 06:04 | 显示全部楼层
最后一行运行错误
回复

使用道具 举报

发表于 2017-9-27 11:21 | 显示全部楼层
居然只点按钮就可以了。。。好厉害啊!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 09:44 , Processed in 0.173176 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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