Excel将来自不同工作簿的数据复制到1个工作簿中

时间:2020-04-02 00:57:04

标签: excel vba

我正在尝试将来自不同工作簿的数据粘贴到1个主工作簿中。到目前为止,数据的复制和粘贴都可以正常工作,但是,当我将数据粘贴到工作簿中时,在将每个工作簿粘贴到主工作簿后,都会跳过一些行。下图显示了问题所在。link

2,3和6-12被跳过。下面是我的代码:

    Sub Macro1()
'
' Macro1 Macro
'
    Dim wb1 As Workbook
    Set wb1 = ThisWorkbook

Path = "C:\Users\Tester\Documents\test\"
Filename = Dir(Path & "*.xls")
  Do While Filename <> ""
  Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
     For Each Sheet In ActiveWorkbook.Sheets
     Sheet.Rows("2:" & Range("A1").End(xlDown).Row).copy _
        wb1.Sheets(1).Range("A" & Range("A1").End(xlDown).Row + 1)
    Application.CutCopyMode = False
  Next Sheet
     Workbooks(Filename).Close
     Filename = Dir()
  Loop
End Sub

我认为问题与“ wb1.Sheets(1).Range(“ A”&Range(“ A1”)。End(xlDown).Row + 1)“这一行有关,但我不确定如何解决这个问题。有什么建议?谢谢!

1 个答案:

答案 0 :(得分:0)

您仅定义了要复制到的范围,但是在其中未指定文件Range("A1").End(xlDown).Row的文件,因此excel将获得表单活动文件。

尝试将目的地更改为

wb1.Sheets(1).Range("A" & wb1.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1)

您的代码应类似于

Sheet.Rows("2:" & Range("A1").End(xlDown).Row).copy 
     _ wb1.Sheets(1).Range("A" & wb1.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1)