如何汇总一个文件夹中所有工作簿sheet1表A1单元格的内容(vba)

如桌面新建文件夹,
新建excel工作表命名为1,A1为5;
新建excel工作表命名为2,A1为10;
新建excel工作表命名为3,汇总工作表1、2,结果如下:
A1,5
A2,10

新建一个工作薄,将所有EXCEL表的文件名填到A列中,复制下面VBA代码到工作薄中,保存为excel.xls后执行

Sub xlscopy()
Application.ScreenUpdating = False
'Arr数组由所有EXCEL文件名组成
arr = [A1:A10]
For i = 1 To UBound(arr)
Workbooks.Open "文件夹路径\" & arr(i, 1)
Workbooks(arr(i)(1)).Activate
For j = 1 To ActiveWorkbook.Sheets.Count
Sheets(j).Copy After:=Workbooks("excel.xls").Sheets(Workbooks("excel.xls").Sheets.Count)
Next
Workbooks(arr(i, 1)).Close False
Next
End Sub追问

运行报错,麻烦按照我的要求写一个

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-16
汇总2007版及以上excel

Sub 汇总数据()
Dim r&, c&, Filename$, wb As Workbook, sht As Worksheet, erow&, fn$, arr As Variant
r = Sheets(1).Range("A65536").End(xlUp).Row
Application.ScreenUpdating = False
Filename = Dir(ThisWorkbook.Path & "\*.xlsx")
Do While Filename <> ""
If Filename <> ThisWorkbook.Name Then
fn = ThisWorkbook.Path & "\" & Filename
Set wb = GetObject(fn)
Set sht = wb.Worksheets(1)
ThisWorkbook.Sheets(1).Cells(r, 1) = sht.Cells(1, 1).Value
wb.Close False
r = r + 1
End If
Filename = Dir '取得其他工作簿名称
Loop
Application.ScreenUpdating = True
End Sub追问

大神你好,你给出的代码已达到我的要求,追问下,如果是想汇总指定位置的单元格是修改哪里,比如说我想要汇总P列数据

追答

ThisWorkbook.Sheets(1).Cells(r, 1) = sht.Cells(1, 1).Value
Cells(1, 1)就是指定的A1,如果要改成P列的数据,那还需要修改不少的,如果只是P列的一个单元格,那你把它的行号和列号写入Cells(行号,列号)就行了

追问

大神试了下是可以的,麻烦再补充一个对P列数据求和后汇总的代码

追答

ThisWorkbook.Sheets(1).Cells(r, 1) =Application.WorksheetFunction.Sum(sht.range("P1:P9999"))

追问

大神真的非常感谢,小悬赏奉上。
另是否可以告知下联系方式,我想拜你为师。

追答

lalala090

追问

有微信或QQ联系方式不

QQ搜索了有很多,Q号有不

追答

另外一个联系方式,就是lalala090
我打出来会被屏蔽回答

追问

哪一个

追答

我是指另外一个软件的联系方式~~,你不是问了两个联系软件么,不在这个上面

追问

微信已加

本回答被提问者采纳
第2个回答  2019-10-16

用这个合并软件,快速高效

追问

我倾向vba,因为一般好点的软件都要收钱

相似回答