7264 3

[问答] excel多个文件读入SAS合并成一个文件问题(VBA解决了) [推广有奖]

  • 0关注
  • 9粉丝

讲师

75%

还不是VIP/贵宾

-

威望
1
论坛币
-7 个
通用积分
5.0487
学术水平
30 点
热心指数
66 点
信用等级
35 点
经验
45336 点
帖子
202
精华
0
在线时间
443 小时
注册时间
2010-5-10
最后登录
2014-7-22

楼主
论坛数据分析 发表于 2011-3-21 21:04:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现在有4000+个excel文件,这些文件在一个文件夹中,命名没有规则,命名是中文长语句
excel文件内部是完全一样的,也就是表头一样,变量名称一样等,但是观测数不一样
现在需要从4000多个文件中将观测值合并为一个数据集。


现在我的办法是用pipe获得所有文件名后,用import读入,
但是这样子存在两个致命的问题:
1.太慢,要运行好几个小时
2.变量的长度读入的时候不能统一

求该问题好的解决方案!!!


该问题尝试用SAS解决,但是效果不好、


找到一段VBA程序,合并表格速度要快很多。共享一下

在工具-宏-宏中



  1. Sub huizong()
  2. mypath = ThisWorkbook.Path & "\"
  3. myfile = Dir(mypath & "*.xls")
  4. On Error Resume Next
  5. Do While myfile <> ""
  6. If myfile <> ThisWorkbook.Name Then
  7. Workbooks.Open mypath & myfile
  8. Workbooks(myfile).Sheets("第一部分").Activate
  9. Range("B3:R7").Select
  10. Selection.Copy
  11. Workbooks(ThisWorkbook.Name).Sheets("sheet1").Activate
  12. count2 = Range("A65536").End(xlUp).Row + 1
  13. Cells(count2, 1).Select
  14. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  15. :=False, Transpose:=False
  16. Workbooks(myfile).Close True
  17. End If
  18. myfile = Dir
  19. Loop
  20. End Sub
复制代码


介绍几个主要的参数:
"第一部分" 是要合并的很多表格的sheet名字
("sheet1").是合并之后的sheet名字
("B3:R7是需要合并的格子 区间
("A65536"). 是从该格子向上判断,非空
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL xcel exce cel VBA EXCEL 文件 SAS

老夫聊发少年狂

沙发
crazygoing 发表于 2011-3-21 21:15:51
先在网上找个批量合并excel的软件,把你那4千多excel合并了,然后用sas再导

藤椅
论坛数据分析 发表于 2011-3-21 23:00:05
老夫聊发少年狂

板凳
邢不行 在职认证  发表于 2011-3-22 22:32:26
http://blog.sina.com.cn/s/blog_6a90ae320100namg.html
上面这篇博文是讲如何导入一个文件夹中所有txt格式数据的方式,导入excel原来是一样的,对楼主也许会有帮助
不管去哪里 只要在路上

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 20:05