VBA:只有第一张工作表

时间:2018-03-12 21:36:18

标签: excel vba excel-vba

我一直在组合一个宏来组合一组工作簿的第一个工作表。我一直在这里和那里抓取一些代码,并且有一个半功能的子程序。但是,现在它正在添加所有选定工作簿中的所有工作表。如何修改以下代码以使用每个工作簿中的第一个工作表?

    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

2 个答案:

答案 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变量

的工作量