Excel精英培训网

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

[已解决]请教大神:VBA怎样跨工作簿复制数据?

[复制链接]
发表于 2015-11-30 09:39 | 显示全部楼层 |阅读模式
请教大神:VBA怎样跨工作簿复制数据?.rar (363.07 KB, 下载次数: 24)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-30 10:21 | 显示全部楼层
回复

使用道具 举报

发表于 2015-11-30 10:39 | 显示全部楼层    本楼为最佳答案   
  1. Sub 导入文件()
  2.     Application.ScreenUpdating = False
  3.     Dim Filename, wb As Workbook, Sht As Worksheet
  4.     Filename = Dir(ThisWorkbook.Path & "\*.xls")
  5.     Set d = CreateObject("scripting.dictionary")
  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("班级分册")
  11.             r = Sht.[r65536].End(3).Row      '数据最大行
  12.             c = [a1].CurrentRegion.Columns.Count     '成绩最大列
  13.             arr = Sht.Range("a1:r" & r)
  14.             For i = 3 To UBound(arr)
  15.                 xh = arr(i, 18)   'r列学号
  16.                 If Not IsError(xh) Then
  17.                 If Len(xh) > 0 Then
  18.                     For j = 2 To c
  19.                         d(xh & arr(2, j)) = arr(i, j)    'd(学号&科目)=成绩
  20.                     Next
  21.                 End If
  22.                 End If
  23.             Next
  24.             wb.Close False
  25.         End If
  26.         Filename = Dir
  27.     Loop
  28.     With ActiveSheet
  29.         r = .[a65536].End(3).Row
  30.         arr = .Range("a1:p" & r)
  31.         For i = 6 To UBound(arr)
  32.             xh = arr(i, 1)    '学号
  33.             For j = 2 To UBound(arr, 2)
  34.                 arr(i, j) = d(xh & arr(5, j))        '成绩=d(学号&科目)
  35.             Next
  36.         Next
  37.         .Range("a1:p" & r) = arr
  38.     End With
  39.     Application.ScreenUpdating = True
  40. End Sub
复制代码

请教大神:VBA怎样跨工作簿复制数据?.rar

360.62 KB, 下载次数: 25

评分

参与人数 2 +3 收起 理由
lichuanboy44 + 2 很给力!
白云无尽9987 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-11-30 11:26 | 显示全部楼层
grf1973 发表于 2015-11-30 10:39

感激不尽,大神!!
回复

使用道具 举报

发表于 2015-12-2 20:38 | 显示全部楼层
插入2列

请教大神:VBA怎样跨工作簿复制数据?.zip

451.5 KB, 下载次数: 40

评分

参与人数 1 +1 收起 理由
白云无尽9987 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-12-2 20:52 | 显示全部楼层
grf1973 发表于 2015-12-2 20:38
插入2列

就是汇总插入列,多谢老师耐心帮教!!......哎,像我这种水平的学生是不是非常淘神?!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 06:07 , Processed in 0.474159 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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