如何在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

嗨,我是VBA新手,我想用VBA在excel中复制第一张工作表。这是我的密码。我一直在拿所有工作簿的工作表。我该怎么办

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返回当前工作簿中的第一个工作表Wkb

hi谢谢您的帮助,但在我更改它时出错。
Wkb.Worksheets(1).Copy Before:=Workbooks(Consolidate)
Wkb.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)