Excel精英培训网

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

[已解决]如何用VBA将登记表的数据导入另一张汇总表内

[复制链接]
发表于 2017-2-5 20:59 | 显示全部楼层 |阅读模式
本帖最后由 KDZ 于 2017-2-5 22:15 编辑

      各们大师:请教如何用VBA实现将一张表的数据导入另一张内,具体要求,请祥见汇总表,先行谢谢大师了,祝您2017好运来!!!!
最佳答案
2017-2-8 15:36
  1. Sub 导入文件()
  2.     Application.ScreenUpdating = False
  3.     Dim Filename, wb As Workbook, Sht As Worksheet
  4.     Filename = Dir(ThisWorkbook.Path & "\*.xls")
  5.     Dim brr(1 To 1000, 1 To 13)
  6.     Do While Filename <> ""
  7.         If Filename <> ThisWorkbook.Name Then
  8.             fn = ThisWorkbook.Path & "" & Filename
  9.             Set wb = Workbooks.Open(fn)
  10.             Set Sht = wb.Worksheets(1)
  11.             arr = Sht.Range("a1:k" & Sht.[c65536].End(3).Row)
  12.             wb.Close False
  13.             For i = 4 To UBound(arr)
  14.                 If arr(i, 2) <> "" Then
  15.                     xm = arr(i, 3)  '家主姓名
  16.                     sfz = arr(i, 4) '家主身份证
  17.                 End If
  18.                 n = n + 1
  19.                 brr(n, 1) = xm
  20.                 brr(n, 3) = sfz
  21.                 brr(n, 5) = arr(i, 3)
  22.                 brr(n, 13) = arr(i, 4)
  23.             Next
  24.         End If
  25.         Filename = Dir
  26.     Loop
  27.     Set Sht = Nothing
  28.     [I2].Resize(n, 13) = brr
  29.     Application.ScreenUpdating = True
  30. End Sub
复制代码

表格1.rar

17.84 KB, 下载次数: 14

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-2-5 21:36 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-2-5 22:09 | 显示全部楼层
您好,因为有数千行的数据,用函数不方便,,请编个VBA,谢谢老师。
回复

使用道具 举报

发表于 2017-2-8 15:36 | 显示全部楼层    本楼为最佳答案   
  1. Sub 导入文件()
  2.     Application.ScreenUpdating = False
  3.     Dim Filename, wb As Workbook, Sht As Worksheet
  4.     Filename = Dir(ThisWorkbook.Path & "\*.xls")
  5.     Dim brr(1 To 1000, 1 To 13)
  6.     Do While Filename <> ""
  7.         If Filename <> ThisWorkbook.Name Then
  8.             fn = ThisWorkbook.Path & "" & Filename
  9.             Set wb = Workbooks.Open(fn)
  10.             Set Sht = wb.Worksheets(1)
  11.             arr = Sht.Range("a1:k" & Sht.[c65536].End(3).Row)
  12.             wb.Close False
  13.             For i = 4 To UBound(arr)
  14.                 If arr(i, 2) <> "" Then
  15.                     xm = arr(i, 3)  '家主姓名
  16.                     sfz = arr(i, 4) '家主身份证
  17.                 End If
  18.                 n = n + 1
  19.                 brr(n, 1) = xm
  20.                 brr(n, 3) = sfz
  21.                 brr(n, 5) = arr(i, 3)
  22.                 brr(n, 13) = arr(i, 4)
  23.             Next
  24.         End If
  25.         Filename = Dir
  26.     Loop
  27.     Set Sht = Nothing
  28.     [I2].Resize(n, 13) = brr
  29.     Application.ScreenUpdating = True
  30. End Sub
复制代码

表格1.rar

21.89 KB, 下载次数: 14

评分

参与人数 1学分 +2 收起 理由
hhxq001 + 2 我和小伙伴都惊呆了

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 05:38 , Processed in 0.176173 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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