如何完全合并两个工作表 - 使用不同的电子表格名称,格式和工作表标题

时间:2016-10-06 19:54:40

标签: excel vba excel-vba import

好吧,所以我正在制作各种各样的“全部捕捉”电子表格。

我与给我们时间表的客户合作,所有客户都有不同的格式和外观,但都在excel(.xlsx)中。

目标是能够制作一个“excel工具”,如果你愿意的话,只需点击一下按钮,我就可以导航到我给出的时间表,并将其导入到工具中。然后,从该工具,我可以继续使用其他VBA脚本(我已经放在一起)从其他excel工作表中获取,从而使该工具成为一个包含所有客户信息的多张表的精美文件。

我遇到的问题是我收到客户的时间表,绝对没有一致性。他们给时间表提供随机名称,他们有时不使用表格,并且他们将表格重命名为各种各样的东西。到目前为止,我只能找到一种自动合并两个电子表格的方法,但只有在时间表具有相同的位置和名称时才有效。

对此有任何解决方法吗?

可能会打开Windows资源管理器的vba脚本,允许我选择我需要的Excel工作表,只需将所有内容导入工具,所有格式和工作表无论的名称和数量?

2 个答案:

答案 0 :(得分:0)

好吧,我有:

     Sub HC_import()
            Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
            Dim Ret1
            Dim Ret2

            Set wb1 = ActiveWorkbook

            On Error Resume Next

            '~~> Get the Health Check File
            Ret1 = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", _
            , "Please select the HC File")
            If Ret1 = False Then Exit Sub

            Set wb2 = Workbooks.Open(Ret1)

            '~~> Copy STNHC Data from Health Check File
        wb2.Activate
        Sheets("STNHC").Select
        ActiveSheet.ShowAllData
        ActiveSheet.ListObjects(1).Unlist
        Range("A1").Select
        Range(Selection, Selection.SpecialCells(xlLastCell)).Select
        Selection.Copy


            '~~> Paste STNHC Data to Tool
        wb1.Activate

            Sheets.Add After:=ActiveWorkbook.Sheets(1)
            ActiveSheet.Name = "HEALTH_CHECK"
            Sheets("HEALTH_CHECK").Select
            Range("A1").Select
            Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Application.CutCopyMode = False

        '~~> Copy PatchETL Data to Tool
        wb2.Activate
        Sheets("PatchETL").Select
        ActiveSheet.ShowAllData
        Range("A:I").Select
        Selection.Copy
End Sub

这很有效,假设表单总是被称为“STNHC” - 我需要一些类似的东西;但无论表格被称为什么,这都会有效。

答案 1 :(得分:0)

这是非常模糊的,但是如果我理解正确的话...如果你把所有excel文件放在1个文件夹中,然后编写一个简单的vbs脚本来重命名包含" .xls&的所有文件怎么办? #34;在所述文件夹中为一致的文件名,然后让脚本通过相同的文件将所有的表重命名为你需要的,即" STNHC"。那么您的文件将与现有工具保持一致吗?