急求excel导入宏定义功能,将多个excel文件里的数据导入到一个excel文件中去。

我有10几个excel文件,里面都只有sheet1里有数据;想在一个新建excel里曾加一个宏定义导入功能,点击导入按钮,选中的excel文件,自动将数据导入到新建的excel文件中去,数据自动分别写到sheet2、sheet3、sheet4、sheet5……
然后将导入数据表的张数统计写到sheet1某个单元格里。
谢谢哥们了! [email protected]
谢谢大侠们,我先看看哪个好使再给分。能不能给我邮箱我,不懂的给你邮箱联系。

Sub 小晕()
'请先建立一个新的表(带宏的),工作簿名字叫 汇总
'添加工作表从Sheet1到Sheet10
'然后在这个目录D:\新建文件夹\1.xlsx 建立新表(文件拓展名请注意,要一样的)
'一共建立2个就 分别是 1.xlsx 2.xlsx ... 10.xlsx就可以。
'第一个表
Workbooks.Open ("D:\新建文件夹\1.xlsx")
Windows("1.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet1").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("1.xlsx").Activate
ActiveWindow.Close
'第二个表
Workbooks.Open ("D:\新建文件夹\2.xlsx")
Windows("2.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet2").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("2.xlsx").Activate
ActiveWindow.Close
'第三个表
Workbooks.Open ("D:\新建文件夹\3.xlsx")
Windows("3.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet3").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("3.xlsx").Activate
ActiveWindow.Close
'第四个表
Workbooks.Open ("D:\新建文件夹\4.xlsx")
Windows("4.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet4").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("4.xlsx").Activate
ActiveWindow.Close
'第五个表
Workbooks.Open ("D:\新建文件夹\5.xlsx")
Windows("5.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet5").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("5.xlsx").Activate
ActiveWindow.Close
'第六个表
Workbooks.Open ("D:\新建文件夹\6.xlsx")
Windows("6.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet6").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("6.xlsx").Activate
ActiveWindow.Close
'第七个表
Workbooks.Open ("D:\新建文件夹\7.xlsx")
Windows("7.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet7").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("7.xlsx").Activate
ActiveWindow.Close
'第八个表
Workbooks.Open ("D:\新建文件夹\8.xlsx")
Windows("8.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet8").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("8.xlsx").Activate
ActiveWindow.Close
'第九个表
Workbooks.Open ("D:\新建文件夹\9.xlsx")
Windows("9.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet9").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("9.xlsx").Activate
ActiveWindow.Close
'第十个表
Workbooks.Open ("D:\新建文件夹\10.xlsx")
Windows("10.xlsx").Activate
Sheets("Sheet1").Select
Cells.Select
Selection.Copy
Windows("汇总.xlsm").Activate
Sheets("Sheet10").Select
Cells.Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Windows("10.xlsx").Activate
ActiveWindow.Close

'文件名变量还在看,这个方法但也能解决你的问题,累赘了点
End Sub
有问题追问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-08
新建一个汇总表,将汇总表与其他excel文件放在同一文件夹中,在汇总表中写宏:
Sub 汇总()
a = Dir(ThisWorkbook.Path & "\*.xls")
On Error Resume Next
For i = 1 To 100
If a <> ThisWorkbook.Name Then
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & a
Workbooks(a).Sheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Workbooks(a).Close savechanges:=False
End If
a = Dir
Next i
End Sub追问

如果我的每个excel文件(格式是一样的,数据不一样)里都有4、5张表,把所有的文件里对应的表合并起来,文件1里的sheet1和文件2里的sheet1……合并到总表的sheet1里;文件1里的sheet2和文件2里的sheet2……合并到总表的sheet2里…………
怎么弄?
3q

追答

[email protected]

第2个回答  2012-01-09
如果你是练习的,用录制宏一个一个的完成一次,放到导入按下做了VB过程或函数。
下次一运行宏。OK了
第3个回答  2012-01-07
有改名字的时间,一个一个复制也复制完啦!
相似回答