我一直在组合一个宏来组合一组工作簿的第一个工作表。我一直在这里和那里抓取一些代码,并且有一个半功能的子程序。但是,现在它正在添加所有选定工作簿中的所有工作表。如何修改以下代码以使用每个工作簿中的第一个工作表?
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName, ReadOnly:=True)
For Each WS In Wkb.Worksheets
WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next WS
Wkb.Close False
FileName = Dir()
Loop
答案 0 :(得分:1)
不要循环:
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName, ReadOnly:=True)
Wkb.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Wkb.Close False
FileName = Dir()
Loop
答案 1 :(得分:0)
Gary的学生解决方案的替代方案
Do Until Filename = ""
With Workbooks.Open(Filename:=Path & "\" & Filename, ReadOnly:=True)
.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Close False
End With
Filename = Dir()
Loop
这将为您节省声明和设置Wkb
变量