将不同Excel中的相同工作表复制到一个目标Excel文件

时间:2014-06-16 21:30:57

标签: excel vba excel-vba

我有多个Excel文件,它们都有相同的工作表,名为Fixture。

我正在尝试复制它们(它们都在同一个文件夹中)并将它们粘贴到原始Excel文件名下的目标Excel文件中。

例如:

运行VBA后,

[Excel1]Fixture将成为Main.xlsx中名为Excel1的新工作表。与Excel2,Excel3等相同。

请帮忙!

1 个答案:

答案 0 :(得分:3)

我建议你分四步采取行动:

  1. 创建工作簿,例如“Collect.xlsx”收集所有“夹具”表
  2. 获取Excel文件名并循环显示
  3. 在循环中,将每个“Fixture”表复制到Collect.xlsx
  4. 关闭并保存Collect.xlsx
  5. 至2:您可以通过dir()fileDialog获取Excel文件名:

    你的循环可能看起来像这样:

    ...
    ...
    fileDialog.Filter1Suffix = "*.xls"
    fileDialog.Filter1Text = "Excel Dokumente"
    fileDialog.ShowOpen
    fileName = fileDialog.fileName
    Do While fileName <> ""
       ImportOneSheet fileName ' <<< your own method to collect Fixture
       fileName = fileDialog.GetNextFile
    Loop
    ... 
    

    如果您使用dir,只需在ImportOneSheet循环中设置dir方法。

    至3:一些关键命令是:

    • Application.Workbooks.Open (fileName)
    • Set myExcel = GetObject(, "Excel.Application")
    • Set importWorkBook = Application.ActiveWorkbook
    • importWorkBook.Sheets("Fixture").range("A:ZZ").Copy
    • collectorWorkBook.Sheets(consolidationSheetName).range("A:ZZ").PasteSpecial xlPasteValuesAndNumberFormats, xlPasteSpecialOperationNone, True, False
    • importWorkBook.Close

    这些仅仅是片段,可以为您提供想法。您可能想了解更多相关信息。

    要4:使用saveAs命令:xlam.ActiveWorkbook.SaveAs path, xlOpenXMLWorkbook, , , False, False和关闭命令:xlam.Workbooks.Close

    对于任何剩余的东西,你会在网上找到大量的片段。祝你好运: - )