将不同的工作簿从文件夹复制到一个工作簿中的不同工作表中

时间:2016-08-17 09:53:25

标签: vba excel-vba excel

我编写了以下代码来清理工作簿,然后创建空工作表

Sub conclusion()
Dim xWs As Worksheet
Dim Path As String, Filename As String



    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For Each xWs In Application.ActiveWorkbook.Worksheets
        If xWs.Name <> "Sheet1" And xWs.Name <> "Summary" Then
            xWs.Delete
        End If
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    ' create new sheets

    Dim MyCell As Range, MyRange As Range

    Set MyRange = Sheets("Summary").Range("A2")
    Set MyRange = Range(MyRange, MyRange.End(xlDown))

    For Each MyCell In MyRange
        Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
        Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
    Next MyCell

    ' copy the workbooks into the sheets (My question )

End Sub

然后它应该从我的案例B2中的单元格中读取路径并查找此文件夹中的所有xls文件并复制到名称位于range A2

的crated工作表中

我写了以下

 Path= Sheets("Summary").Range("B2").Value ***( it does not read the value of B2, why? )***
  Filename = Dir("Path" & "*.xls")
  Do While Filename <> ""

***here is my question, how can I write the following:
COPY THE WORKBOOK 1 INTO SHEET with the name from Cell A2*** 
  Loop

1 个答案:

答案 0 :(得分:0)

要解决第一个问题,请尝试:

With Application.Workbooks("BookName").Sheets("Summary")
    Path = .Range("B1").Text & "\" & .Range("A2").Text
End With

对于第二个,你的变量Path在引号中,它不应该是,因为它不是字符串而是字符串变量。不太确定你为什么在那里有通配符星号......

Filename = Dir(Path & ".xls")

对于最后一部分,您的For Loop缺少您要循环的内容(即。单元格)

For Each MyCell In MyRange.Cells
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
    Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
Next MyCell