永发信息网

vba合并不同工作薄数据

答案:3  悬赏:0  手机版
解决时间 2021-07-18 00:20
  • 提问者网友:我是女神我骄傲
  • 2021-07-17 17:38

如题,如何将同一文件夹下的所有工作薄内的数据合并在一个工作表内啊,本人不会vba。麻烦高手给编个代码,谢谢了

我的工作是做日报,每天有相同的格式表格需要填写,但内容不同。到了月底需要统计所有的工作薄到一个工作表内(格式相同,内容为前面统计的总和,其中有数量相加,也有内容合并)

最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-07-17 19:15

把表发上来才好调试。

全部回答
  • 1楼网友:青灯有味
  • 2021-07-17 22:07
确保该文件夹只有这些Excel文件,且若打开某一文件,数据就能看见——即不用点其他sheet。 建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,左边窗口右键点,插入模块,在右边窗口粘贴如下代码: Sub Find() Application.ScreenUpdating = False Dim MyDir As String MyDir = ThisWorkbook.Path & "\" ChDrive Left(MyDir, 1) 'find all the excel files ChDir MyDir Match = Dir$("") Do If Not LCase(Match) = LCase(ThisWorkbook.Name) Then Workbooks.Open Match, 0 'open ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet Windows(Match).Activate ActiveWindow.Close Match = Dir$ End If Loop Until Len(Match) = 0 Application.ScreenUpdating = True End Sub 按F5运行此宏,所有文件放在一起了,可以用诸如 sum(sheet2:sheet30!a1)之类的公式完成合并 请参见 http://wenwen.soso.com/z/q161555335.htm
  • 2楼网友:洒脱疯子
  • 2021-07-17 20:43

Sub FileProcess()

Dim FileFind As FileSearch Dim fs As Variant Dim FilePath As String Dim FileStyle As String

FilePath = ThisWorkbook.Path FileStyle = "*.XLS" With Application.FileSearch .LookIn = FilePath .Filename = FileStyle .Execute For Each fs In .FoundFiles Set XLSHEET = Workbooks.Open(fs) Set XLRA = XLSHEET.Sheets(1).UsedRange N = N + 1 If N = 1 Then XLRA.Copy Sheet1.[A1] Else XLRA.Offset(1, 0).Resize(XLRA.Rows.Count - 1, XLRA.Columns.Count).Copy Sheet1.Range("a65536").End(xlUp).Offset(1, 0) End If XLSHEET.Close Next fs End With End Sub

合并代码如上,具体问题需具体分析,如合并单元格具体区域等等

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯