'这个宏的作用是:把当前文件夹下每一个excel文件的每一行(共8行)复制到总表的每一个sheet工作表中去,即把一个文件里的那1张表的8行复制转换成另一个文件的8张表里的8行,主要用于汇总工作
Public toRow As Integer
Public fromRow As Integer
Sub insert() '宏的名字
Dim myPath$, myFile$, AK As Workbook, aRow%, tRow%, i As Integer '定义变量
toRow = 5 '目标文件粘贴的起始行位置
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
myPath = ThisWorkbook.Path '把文件路径定义给变量
myFile = Dir(myPath & "\*.xls") '依次找寻指定路径中的*.xls文件
Do While myFile <> "" '当指定路径中有文件时进行循环
toRow = toRow + 1 '每一个文件对应目标文件的新的一行,顺序往下粘贴
If myFile <> ThisWorkbook.Name Then '扫描除了当前目标文件外的每一个.xls文件
Set AK = Workbooks.Open(myPath & "\" & myFile) '打开符合要求的文件
tempRow = 5 '源文件的复制起始行位置
For i = 1 To 8 '每一个源总共8行
fromRow = tempRow + i '源文件逐行往下复制
Workbooks(myFile).Close False '关闭源工作簿,并不作修改
End If
myFile = Dir '找寻下一个*.xls文件
Loop
Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
MsgBox "导入完成" '最后弹窗提示
Public toRow As Integer
Public fromRow As Integer
Sub insert() '宏的名字
Dim myPath$, myFile$, AK As Workbook, aRow%, tRow%, i As Integer '定义变量
toRow = 5 '目标文件粘贴的起始行位置
Application.ScreenUpdating = False '冻结屏幕,以防屏幕抖动
myPath = ThisWorkbook.Path '把文件路径定义给变量
myFile = Dir(myPath & "\*.xls") '依次找寻指定路径中的*.xls文件
Do While myFile <> "" '当指定路径中有文件时进行循环
toRow = toRow + 1 '每一个文件对应目标文件的新的一行,顺序往下粘贴
If myFile <> ThisWorkbook.Name Then '扫描除了当前目标文件外的每一个.xls文件
Set AK = Workbooks.Open(myPath & "\" & myFile) '打开符合要求的文件
tempRow = 5 '源文件的复制起始行位置
For i = 1 To 8 '每一个源总共8行
fromRow = tempRow + i '源文件逐行往下复制
AK.Sheets(1).Range("c" & fromRow & ":n" & fromRow).Copy ThisWorkbook.Sheets(i).Range("c" & toRow & ":n" & toRow)
'执行复制操作,&符号是字符拼接,第一次执行的时候是从C6:N6复制到Sheets1的C6:N6
NextWorkbooks(myFile).Close False '关闭源工作簿,并不作修改
End If
myFile = Dir '找寻下一个*.xls文件
Loop
Application.ScreenUpdating = True '冻结屏幕,此类语句一般成对使用
MsgBox "导入完成" '最后弹窗提示
End Sub
下载链接:http://download.csdn.net/detail/u011322206/9529896 ,可以有excel可以操作演示查看结果,也有代码