excel利用宏自动复制来自其他excel文件的数据

来源:互联网 发布:linux 文本排序 编辑:程序博客网 时间:2024/06/06 18:54
'这个宏的作用是:把当前文件夹下每一个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    '源文件逐行往下复制

             AK.Sheets(1).Range("c" & fromRow & ":n" & fromRow).Copy ThisWorkbook.Sheets(i).Range("c" & toRow & ":n" & toRow)

              '执行复制操作,&符号是字符拼接,第一次执行的时候是从C6:N6复制到Sheets1的C6:N6

          Next
          Workbooks(myFile).Close False               '关闭源工作簿,并不作修改
      End If
      myFile = Dir                                   '找寻下一个*.xls文件
   Loop
   Application.ScreenUpdating = True                 '冻结屏幕,此类语句一般成对使用
   MsgBox "导入完成"      '最后弹窗提示

End Sub


下载链接:http://download.csdn.net/detail/u011322206/9529896 ,可以有excel可以操作演示查看结果,也有代码

0 0