[英]Copy Active sheet of all workbooks in a folder to a new workbook
Hi I have the following code to copy all worksheets of all workbooks in a given folder to a single workbook. 嗨,我有以下代码将给定文件夹中所有工作簿的所有工作表复制到一个工作簿中。 I need to modify this code to copy only the active sheet on all workbooks (now it copies all the sheets). 我需要修改此代码以仅在所有工作簿上复制活动工作表(现在它会复制所有工作表)。 Can you help me with this? 你能帮我吗?
Option Explicit
Sub CombineFiles()
Dim Path As String
Dim FileName As String
Dim Wkb As Workbook
Dim WS As Worksheet
Application.EnableEvents = False
Application.ScreenUpdating = False
Path = "C:\" 'Change as needed
FileName = Dir(Path & "\*.xlsx", vbNormal)
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)
For Each WS In Wkb.Worksheets
WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next WS
Wkb.Close False
FileName = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
This way you can do what you want: 这样,您可以做自己想做的事:
Option Explicit
Sub CombineFiles()
Dim Path As String
Dim FileName As String
Dim Wkb As Workbook
Dim WS As Worksheet
Application.EnableEvents = False
Application.ScreenUpdating = False
Path = "C:\" 'Change as needed
FileName = Dir(Path & "\*.xlsx", vbNormal)
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)
ActiveSheet.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
'For Each WS In Wkb.Worksheets
' WS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
'Next WS
Wkb.Close False
FileName = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Note: 注意:
When you open the workbook, you go over all the sheets with the FOR LOOP
, but you only need to copy the ActiveSheet
then (as you said) you only need to copy to the new Wrokbook
当您打开工作簿时,使用FOR LOOP
遍历所有工作表,但是您只需要复制ActiveSheet
然后(如您所说)只需复制到新的Wrokbook
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.