从多个工作簿自动更新Excel表格

时间:2015-12-29 16:42:25

标签: excel vba excel-vba

我有一个包含两张主要工作表的工作簿,其中的值基于其他24张工作表。

每周有24名员工发送新数据。主要工作簿应将它们组合到主文件中。格式化和一切。

我使用过这段代码:

Sub GetSheets()
Path = "C:\Users\dt\Desktop\dt kte\"
Filename = Dir(Path & "*.xls")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Copy After:=ThisWorkbook.Sheets(1)
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub

它可以将它们结合起来。问题是我需要24张数据来覆盖主工作簿中24页的数据。如果我从主工作簿中删除了24张纸,它会杀死主页上的公式。

1 个答案:

答案 0 :(得分:0)

  

我遇到的问题是我需要24页的数据   覆盖主要工作簿中的24张数据

那么,在这种情况下,为什么不复制/粘贴值,而不删除和复制整个工作表。我想每个源表在主工作簿中都有一个具有相同名称的相应表:

Sub GetSheets()
    Path = "C:\Users\dt\Desktop\dt kte\"
    Filename = Dir(Path & "*.xls")
    Do While Filename <> ""
       Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
       For Each src In ActiveWorkbook.Sheets
           Set dest = ThisWorkbook.Sheets(src.name)
           dest.UsedRange.ClearContents
           src.UsedRange.Copy dest.Range(src.UsedRange.Address)
       Next src
       Workbooks(Filename).Close
       Filename = Dir()
  Loop
End Sub