按标签名称合并工作簿
我希望有人能够帮助。
我正在考虑在excel中合并几个工作簿,但每个工作簿都有8-10个选项卡,我不需要,而实际上我只需要一个选项卡,我已经将以下公式组合在一起了,但我不确定是什么要做的只是将我需要的单个选项卡组合在一起,它们在每个工作簿中都是相同的名称。
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
谢谢
它是有意识地使用臭名昭着的 On Error Resume Next
语句并避免在一个集合中循环的情况之一(即Worksheets
一)
此外, ThisWorkbook
总是引用运行代码所在的工作簿,所以不需要任何引用它的Workbook
typesvariables
Sub GetSheets() Path = "C:\Users\dt\Desktop\dt kte\" Filename = Dir(Path & "*.xls") On Error Resume Next Do While Filename <> "" Workbooks.Open(Filename:=Path & Filename, ReadOnly:=True).Worksheets("SHEETNAME").Copy After:=ThisWorkbook.Sheets(1) ActiveWorkbook.Close False Filename = Dir() Loop End Sub
只需将SHEETNAME
更改为您实际需要的选项卡名称即可
如果你只需要从每一个复制特定的表格,下面应该工作(只需调整SHEETNAME
到什么)
Sub GetSheets() dim mainWB as Workbook Set mainWB = ThisWorkbook 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 If sheet.Name = "SHEETNAME" then Sheet.Copy After:=mainWB.Sheets(1) End if Next Sheet Workbooks(Filename).Close Filename = Dir() Loop End Sub