如题所述
在同一工作簿中新建一个文档,在VB中输入以下宏代码并运行该宏:
Sub 合并()
'将同一路径下的多个工作簿的第一个工作表的内容合并到有此代码的工作簿的第一个工作表中
Dim MyPath$, MyName$, sh As Worksheet,AbRcou%
Application.ScreenUpdating = FalseSet
Set sh = ThisWorkbook.Sheets(1)
MyPath = ThisWorkbook.Path & "\"
MyName = Dir(MyPath & "*.xls")
[a1].CurrentRegion.Offset(1).Clear
Do While MyName <> ""
If MyName <> ThisWorkbook.Name Then
With GetObject(MyPath & MyName)
AbRcou = sh.Cells(Rows.Count, 1).End(xlUp).Row
Workbooks(MyName).Worksheets(1).[a1].CurrentRegion.Offset(IIf(AbRcou = 1, 0, 1)).Copy sh.Cells(1, 1).Offset(IIf(AbRcou = 1, 0, AbRcou))
.Close False
End With
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "ok"
End Sub
Sub 合并()
'将同一路径下的多个工作簿的第一个工作表的内容合并到有此代码的工作簿的第一个工作表中
Dim MyPath$, MyName$, sh As Worksheet,AbRcou%
Application.ScreenUpdating = FalseSet
Set sh = ThisWorkbook.Sheets(1)
MyPath = ThisWorkbook.Path & "\"
MyName = Dir(MyPath & "*.xls")
[a1].CurrentRegion.Offset(1).Clear
Do While MyName <> ""
If MyName <> ThisWorkbook.Name Then
With GetObject(MyPath & MyName)
AbRcou = sh.Cells(Rows.Count, 1).End(xlUp).Row
Workbooks(MyName).Worksheets(1).[a1].CurrentRegion.Offset(IIf(AbRcou = 1, 0, 1)).Copy sh.Cells(1, 1).Offset(IIf(AbRcou = 1, 0, AbRcou))
.Close False
End With
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "ok"
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-02-20
可以参考我原来做的一个回答,利用power query进行合并。
这是不需要写代码,而且以后可以随时刷新使用的方法。如果看不懂,可以问。
如果仅是对所有的内容还需要进行统计,那在你得到所有内容后可以再统计,这个内容没有写在那个答案中。
第2个回答 2019-02-20
1、这个问题除了用公式,可以用VBA程序来解决。
2、实现方法如下。
3、读取每页的数据。
4、将这些数据合并在一起。
5、将合并的数据存入到工作表中。
6、具体实现方法可以上传附件到论坛,让网友帮助解决。
7、也可以咨询某宝的VBA卖家。
8、没有具体的数据很难实现。
9、也可以百度相关代码,尝试自己解决。
2、实现方法如下。
3、读取每页的数据。
4、将这些数据合并在一起。
5、将合并的数据存入到工作表中。
6、具体实现方法可以上传附件到论坛,让网友帮助解决。
7、也可以咨询某宝的VBA卖家。
8、没有具体的数据很难实现。
9、也可以百度相关代码,尝试自己解决。
第3个回答 2019-02-20
写代码可以实现。具体要你的文件来处理!