可以随便在Sheet1、2,那点击——查看代码,将这段段码复制进去,保存,当然,你得在那将"D:\示例\数据记录\"改成你实际的要合并文件的路径
宏建好后,可以按Alt+F8弹出运行宏的窗口,这时在左边选中要运行的宏,点右边的“运行”就可以运行了。并且在这个窗口的“选项”那里可以定义运行宏的快捷键,
建个宏,把代码中这里"D:\示例\数据记录\"改成你实际的要合并文件的路径
Sub CombineWorkbooks()
Dim strFileName As String
Dim wb As Workbook
Dim ws As Object
'包含工作簿的文件夹,可根据实际修改
Const strFileDir As String = "D:\示例\数据记录\"
Application.ScreenUpdating = False
Set wb = Workbooks.Add(xlWorksheet)
strFileName = Dir(strFileDir & "*.xls*")
Do While strFileName <> vbNullString
Dim wbOrig As Workbook
Set wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)
strFileName = Left(Left(strFileName, Len(strFileName) - 4), 29)
For Each ws In wbOrig.Sheets
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
If wbOrig.Sheets.Count > 1 Then
wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.Index
Else
wb.Sheets(wb.Sheets.Count).Name = strFileName
End If
Next
wbOrig.Close SaveChanges:=False
strFileName = Dir
Loop
Application.DisplayAlerts = False
wb.Sheets(1).Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
当你录制宏时,可以将它保存在个人宏工作簿里面。当你储存宏在个人宏工作簿里时,Excel创建一个名为“Personal.xls”的文件并且放在“Program Files\Microsoft Office\Office”的子文件夹——XLStart文件夹里。保存在XLStart文件夹的文件每次在Excel启动的时候都会自动打开。个人宏工作簿是一个保存通用宏代码的方便的地方,就像下面这个宏。现在来录制一个通用的宏“FormulasOnOff”。这个宏的目的是设置是否显示工作簿的公式。
1. 选择“工具”-“宏”-“录制新宏”
2. 在录制宏对话框,输入宏名“FormulasOnOff”
3. 在保存宏的下拉菜单里选择“个人宏工作簿”
4. 点击快捷键文本框,并且按下“Shift+F”
5. 选择确定退出录制宏对话框
6. 按下“Ctrl+~”打开公式的显示,或者选择“工具”-“选项”并且点击“视图”页上“窗口选项”中的“公式”检验盒。当你打开公式显示时,工作簿单元格里显示的是公式,而非这个公式计算出来的数值。如果你是在一个空白工作表中录制这个宏的,那么你将注意到的唯一变化是工作表的列宽。
7. 点击“停止录制”,或者选择“工具”-“宏”-“停止录制”
8. 查看代码:按下Alt+F11,或者选择“工具”-“宏”-“VB编辑器”
在新建的工作表中的单元格输入“=”,然后,点击所需要加入数据的表,找到所需要的行或单元格,点击就OK了
方法1:公式引用单元格的值
方法2:使用数据透视表
有多张子表,就需要建多张透视表。
如果是不同工作表中,同一个单元格的数据汇总(例如:有5个工作表分别是Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,每张表的A1数据求和,新工作表Sheet6的公式可以写成:
=SUM(Sheet1:Sheet5!A1)
如果是不同工作表的不同单元格的数据求和,则用逗号隔开,如:
=SUM(Sheet1!A1,Sheet2!B1,Sheet3!C1)……
如果是不同工作表中,同一个单元格的数据汇总(例如:有5个工作表分别是Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,每张表的A1数据求和,新工作表Sheet6的公式可以写成:
=SUM(Sheet1:Sheet5!A1)