Excel精英培训网

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

[已解决]VBA汇总求助 7.22补充提问

[复制链接]
发表于 2015-7-20 10:23 | 显示全部楼层 |阅读模式
本帖最后由 eggcheng 于 2015-7-22 08:32 编辑

求老师们帮我写段代码,将同个文件夹下所有excel表的数据汇总到一个工作表中,万分感谢


老师帮我写的代码还有点需要修改的,文本与数值,现在生成的汇总格式全部是数值,像AL列的报关单号码就显示不完整,可否修改成源文件是文本查过来就是文本,源文件是数值就是数值,谢谢!
最佳答案
2015-7-20 11:09
  1. Sub demo()
  2.     Dim ar, br, str, i, j, n
  3.     Application.DisplayAlerts = False
  4.     Application.ScreenUpdating = False
  5.     FilePath = ThisWorkbook.Path & ""
  6.     str = Dir(FilePath & "*.xls", vbNormal)
  7.     ReDim br(1 To 100000, 1 To 107)
  8.     Do While str <> ""
  9.         If str <> "汇总格式.xls" Then
  10.             Workbooks.Open FilePath & str
  11.             With Workbooks(2)
  12.                 ar = .Sheets("入出境信息").Range("A1").CurrentRegion
  13.                 .Close savechange = True
  14.             End With
  15.             For i = 3 To UBound(ar)
  16.                 n = n + 1
  17.                 For j = 1 To UBound(ar, 2)
  18.                     br(n, j) = ar(i, j)
  19.                 Next
  20.             Next
  21.         End If
  22.         str = Dir
  23.     Loop
  24.     Range("a2").Resize(n, 107) = br
  25.     Application.DisplayAlerts = True
  26.     Application.ScreenUpdating = True
  27. End Sub
复制代码
求助.rar (116.8 KB, 下载次数: 14)

求助.zip

210.47 KB, 下载次数: 5

原始文件

发表于 2015-7-20 11:09 | 显示全部楼层    本楼为最佳答案   
  1. Sub demo()
  2.     Dim ar, br, str, i, j, n
  3.     Application.DisplayAlerts = False
  4.     Application.ScreenUpdating = False
  5.     FilePath = ThisWorkbook.Path & ""
  6.     str = Dir(FilePath & "*.xls", vbNormal)
  7.     ReDim br(1 To 100000, 1 To 107)
  8.     Do While str <> ""
  9.         If str <> "汇总格式.xls" Then
  10.             Workbooks.Open FilePath & str
  11.             With Workbooks(2)
  12.                 ar = .Sheets("入出境信息").Range("A1").CurrentRegion
  13.                 .Close savechange = True
  14.             End With
  15.             For i = 3 To UBound(ar)
  16.                 n = n + 1
  17.                 For j = 1 To UBound(ar, 2)
  18.                     br(n, j) = ar(i, j)
  19.                 Next
  20.             Next
  21.         End If
  22.         str = Dir
  23.     Loop
  24.     Range("a2").Resize(n, 107) = br
  25.     Application.DisplayAlerts = True
  26.     Application.ScreenUpdating = True
  27. End Sub
复制代码
求助.rar (116.8 KB, 下载次数: 14)
回复

使用道具 举报

 楼主| 发表于 2015-7-20 11:41 | 显示全部楼层
qh8600 发表于 2015-7-20 11:09

运行错误9,下标越界
回复

使用道具 举报

发表于 2015-7-20 11:48 | 显示全部楼层
eggcheng 发表于 2015-7-20 11:41
运行错误9,下标越界

关闭其他工作簿,只打开一个汇总的
回复

使用道具 举报

 楼主| 发表于 2015-7-21 16:30 | 显示全部楼层
qh8600 发表于 2015-7-20 11:48
关闭其他工作簿,只打开一个汇总的

可以了 多谢老师~
回复

使用道具 举报

 楼主| 发表于 2015-7-22 08:31 | 显示全部楼层
qh8600 发表于 2015-7-20 11:48
关闭其他工作簿,只打开一个汇总的

老师 麻烦再帮我修改一下数据类型
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 11:40 , Processed in 0.156370 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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