如何使用VBA将不同的Excel选项卡中的数据合并到主工作表

我正在使用下面的脚本将多页Excel文件的“Sheet1”中的数据复制到另一个Excel文件的主表单中。 它完美地工作在一张纸上。 现在我需要把它粘贴到主文件中的下一个可用行中,将所有的表单粘贴到这个表中。

请注意:所有表单使用相同的密码。

请帮忙!

谢谢,

Yohanan

Sub CopyRanges() Dim WB1 As Workbook Dim WB2 As Workbook Dim LastRow As Long Set WB1 = ActiveWorkbook Set WB2 = Workbooks.Open(WB1.Path & "\Datafile.xls") Sheets("Sheet1").Unprotect ("Password1") With WB2.Sheets("Sheet1") LastRow = .Range("B" & .Rows.Count).End(xlUp).Row End With WB2.Sheets("71235").Range("B6:M" & LastRow).Copy WB1.Sheets("Output").Range("A2").PasteSpecial xlPasteValues Sheets("Sheet1").Protect ("FTCCTOR") WB2.Close End Sub 

尝试这个:

 Sub CopyRanges() Dim WB1 As Workbook Dim WB2 As Workbook Dim LastRow As Long Dim sht As Worksheet Set WB1 = ActiveWorkbook Set WB2 = Workbooks.Open(WB1.Path & "\Datafile.xls") For Each sht In WB2.Sheets With sht .Unprotect ("Password1") LastRow = .Range("B" & .Rows.count).End(xlUp).Row WB1.Sheets("Output").Range("A" & WB1.Sheets("Output").Rows.count).End(xlUp).Resize(LastRow - 5, 12).value = .Range("B6:M" & LastRow).value .Protect ("Password1") End With Next sht WB2.Close End Sub 

只需要值时,分配值的速度比复制值快。