如何汇总一个文件夹中所有工作簿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,因为一般好点的软件都要收钱

VBA汇总统一文件夹下的多个表格的数据?
由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。上述的Z=dir 就是实现的下一个文件名的调用。下面看运行的结果:点击“ADO实现同文件夹下所有文件数据汇总”按钮:汇总后再A到E列给出了数据的汇总:今日内容回向:1 在不知道文件名和文件个数的前提...

用vba实现同一个文件夹内的多个excel文件,对同sheet名的工作簿合并成...
' 设置目标工作表,这里假设要合并到主工作簿的Sheet1工作表中 Set 目标工作表 = 主工作簿.Sheets("Sheet1")' 获取文件夹中的文件名 文件名 = Dir(文件夹路径 & "*.xlsx")' 循环处理每个文件 Do While 文件名 <> ""' 打开源工作簿 Set 源工作簿 = Workbooks.Open(文件夹路径 & 文件名)...

用Excel VBA如何合并同一文件夹下的所有工作簿的第一张工作表?
⓵单击“合并所有工作簿”命令按钮,系统自动实现合并功能;⓶执行命令后,系统自动弹出一“提示”对话框,显示合并的工作簿信息;⓷当部门员工的信息有更改时,再次单击按钮,汇总数据随时刷新。实现以上功能的代码如下:Sub CombineWbs()Dim bt As Range, r As Long, c As Long r ...

如何用vba汇总多个excelvba如何快速汇总数据
打开一个新的Excel文件。打开Visual Basic,添加一个模块和一个过程,称之为“汇总文件”。将汇总文件名的代码复制到上述过程中,再定义一个变量wb为工作簿类型。添加打开和关闭文件夹下各Excel文件的代码。将各个文件中的第一张工作表复制到当前的工作簿中最后一张工作表的后面。执行以上的代码后,即可...

如何用宏批量提取指定文件夹中所有excel表格中指定sheet的内容?
下面是一个示例的VBA代码,可以帮助您批量提取指定文件夹中所有Excel表格中特定工作表的内容,并将其汇总到一张表中:vba Sub ExtractDataFromSheets()Dim FolderPath As String Dim FileName As String Dim wbSource As Workbook Dim wsSource As Worksheet Dim wsDestination As Worksheet Dim LastRow ...

如何通过VBA代码将N个EXCEL表的文件中SHEET1的A列数据汇总到一个...
一、首先把你的那几个EXCEL文件复制到同一个目录下,全选,按F2,把第一个文件重命名为 (0).xls,这样你所有的文件就都变为这个形式的了 (0).xls,(1).xls,(2).xls,(3).xls,...二、新建一个excel文档,录制一个宏,什么都不做就结束录制,然后把这个宏的代码改成如下样子:Sub Macro...

...我需要把100多张工作簿对应的SHEET中的信息汇总到一起,求助,谢谢大 ...
'要汇总的工作簿放在同一文件夹下,再建一个汇总工作簿把下面代码放入汇总工作簿中。'打开汇总工作簿,在菜单栏有一个《表格汇总》菜单按一下就能自动汇总。Sub auto_open()MenuBars(xlWorksheet).Reset Set mycommandbar = CommandBars("standard")Set mybutton = mycommandbar.Controls.Add(Type:=...

...如果能够快速准确的汇总文件夹(包含子文件夹)中的EXCEL文件。_百度知...
1、取得该文件夹下需要汇总的Excel文档列表,把文件名称放在A列。如果文件名没什么规律并且数据很多的话可以使用Dos命令dir >list.txt,然后用Excel打开list.txt文件并复制文件名。2、在B列中输入公式="='" & 文件夹路径 & "[" & A1 & "]" & 工作表名称 & "'!" & 单元格地址。(注上述...

VBA打印指定目录下的所有文件Excel表(含表中所有sheet)
Next st .Close End With n = Dir WendEnd Sub如果是多层文件夹(文件夹里面有字文件夹),需要增加递归的框架。其实试试看下面的方法,在【计算机】或者【我的电脑】里面多选EXCEL文件,鼠标右键点击选择【打印】,操作界面如下图:

求一个VBA,一个文件夹中多个EXCEL工作簿合并成一个工作表?
1、将需要合并的EXCEL文件与目的EXCEL文件放在一个文件夹下。2、 打开HB.xlsx,将“开发工具”菜单加载到EXCEL菜单下。3、首先右键点击菜单空白处,选择“自定义功能区”,在弹出的对话框里选择主选项卡。然后勾选“开发工具”。如图所示。4、 制作导入键。点击“开发工具”菜单,选择“插入”--“...

相似回答