Excel精英培训网

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

[已解决]从多个Excel提取数据并合并

[复制链接]
发表于 2014-4-3 11:14 | 显示全部楼层 |阅读模式
小弟这里有很多个excel文件,已通过批处理分别完成运算,并将结果显示在了每个excel的最后一行。
现在我想要将这些结果汇总在一个新的excel文档中,即提取每个excel最后一行数据,合并在新的excel中。
请问如何用VBA进行编程?论坛新人,VBA初学,希望和大家共同学习,一起进步!


最佳答案
2014-4-3 12:34
  1. Sub Macro1()
  2. Dim wb As Workbook, mypath$, wj$, s&, x&
  3. mypath = ThisWorkbook.Path & ""
  4. Application.ScreenUpdating = False
  5. wj = Dir(mypath & "*.xls")
  6. Do While wj <> ""
  7.     If wj <> ThisWorkbook.Name Then
  8.         s = s + 1
  9.         Set wb = GetObject(mypath & wj)
  10.         With wb.Sheets(1)
  11.             x = .Range("a65536").End(xlUp).Row
  12.             .Rows(x).Copy Sheet2.Cells(s, 1)
  13.         End With
  14.         wb.Close 0
  15.     End If
  16.     wj = Dir
  17. Loop
  18. Sheet2.Activate
  19. Application.ScreenUpdating = True
  20. End Sub
复制代码

data.zip

73.48 KB, 下载次数: 6

发表于 2014-4-3 12:34 | 显示全部楼层    本楼为最佳答案   
  1. Sub Macro1()
  2. Dim wb As Workbook, mypath$, wj$, s&, x&
  3. mypath = ThisWorkbook.Path & ""
  4. Application.ScreenUpdating = False
  5. wj = Dir(mypath & "*.xls")
  6. Do While wj <> ""
  7.     If wj <> ThisWorkbook.Name Then
  8.         s = s + 1
  9.         Set wb = GetObject(mypath & wj)
  10.         With wb.Sheets(1)
  11.             x = .Range("a65536").End(xlUp).Row
  12.             .Rows(x).Copy Sheet2.Cells(s, 1)
  13.         End With
  14.         wb.Close 0
  15.     End If
  16.     wj = Dir
  17. Loop
  18. Sheet2.Activate
  19. Application.ScreenUpdating = True
  20. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-3 12:36 | 显示全部楼层
………………

新建文件夹.zip

81.83 KB, 下载次数: 15

回复

使用道具 举报

 楼主| 发表于 2014-4-3 15:47 | 显示全部楼层
dsmch 发表于 2014-4-3 12:34

非常感谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 22:20 , Processed in 0.302089 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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