如何在VBA excel中仅复制第一个工作表
嗨,我是VBA新手,我想用VBA在excel中复制第一张工作表。这是我的密码。我一直在拿所有工作簿的工作表。我该怎么办如何在VBA excel中仅复制第一个工作表,excel,ms-office,vba,Excel,Ms Office,Vba,嗨,我是VBA新手,我想用VBA在excel中复制第一张工作表。这是我的密码。我一直在拿所有工作簿的工作表。我该怎么办 Sub Consolidator() Dim Path As String Dim FileName As String Dim Wkb As Workbook Dim ws As Worksheet Dim diaFolder As Fi
Sub Consolidator()
Dim Path As String
Dim FileName As String
Dim Wkb As Workbook
Dim ws As Worksheet
Dim diaFolder As FileDialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show
fle = diaFolder.SelectedItems(1)
Application.EnableEvents = False
Application.ScreenUpdating = False
Path = fle
FileName = Dir(Path & "\*.xls", vbNormal)
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)
For Each ws In Wkb.Worksheets
ws.Copy Before:=Workbooks(Consolidate)
ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next ws
Wkb.Close False
FileName = Dir()
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
Set diaFolder = Nothing
End Sub
更改:
Do Until FileName = ""
Set Wkb = Workbooks.Open(FileName:=Path & "\" & FileName)
For Each ws In Wkb.Worksheets
ws.Copy Before:=Workbooks(Consolidate)
ws.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next ws
Wkb.Close False
FileName = Dir()
Loop
致:
对于Wkb.工作表中的每个ws…下一个ws将遍历工作簿工作表集合中的每个工作表,即,将复制工作簿中的每个工作表,如您所述
要仅执行第一个工作表,您需要删除For Each…Next循环,并将其替换为:
Wkb.Worksheets(1).Copy Before:=Workbooks(Consolidate)
Wkb.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
在本例中,Wkb.Worksheets1返回当前工作簿中的第一个工作表Wkbhi谢谢您的帮助,但在我更改它时出错。
Wkb.Worksheets(1).Copy Before:=Workbooks(Consolidate)
Wkb.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)