好吧,所以我正在制作各种各样的“全部捕捉”电子表格。
我与给我们时间表的客户合作,所有客户都有不同的格式和外观,但都在excel(.xlsx)中。
目标是能够制作一个“excel工具”,如果你愿意的话,只需点击一下按钮,我就可以导航到我给出的时间表,并将其导入到工具中。然后,从该工具,我可以继续使用其他VBA脚本(我已经放在一起)从其他excel工作表中获取,从而使该工具成为一个包含所有客户信息的多张表的精美文件。
我遇到的问题是我收到客户的时间表,绝对没有一致性。他们给时间表提供随机名称,他们有时不使用表格,并且他们将表格重命名为各种各样的东西。到目前为止,我只能找到一种自动合并两个电子表格的方法,但只有在时间表具有相同的位置和名称时才有效。
对此有任何解决方法吗?
可能会打开Windows资源管理器的vba脚本,允许我选择我需要的Excel工作表,只需将所有内容导入工具,所有格式和工作表无论的名称和数量?
答案 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"。那么您的文件将与现有工具保持一致吗?