合并3张成1张

我想要一个脚本,从另一个工作簿中提取3个不同的工作表,并将数据堆叠在一个新的空白工作表中。

这似乎应该工作,但它不是:

Sub CombineSheets() Set NewSheet = Worksheets("Sheet2") Set MC = Workbooks.Open("S:\OtherWorkBook.xlsm") Set T1 = MC.Worksheets("T1") Set T2 = MC.Worksheets("T2") Set T3 = MC.Worksheets("T3") With T1 lastrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A5:I" & lastrow).Copy NewSheet.Range("A" & wks.Rows.Count).End(xlUp) End With With T2 lastrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A5:I" & lastrow).Copy NewSheet.Range("A" & wks.Rows.Count).End(xlUp) End With With T3 lastrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A5:I" & lastrow).Copy NewSheet.Range("A" & wks.Rows.Count).End(xlUp) End With Workbooks("OtherWorkBook.xlsm").Close SaveChanges:=False End Sub 

脚本运行,但没有被转储到NewSheet? 我错过了什么。 谢谢!

您缺lessDestination:= .Copy电话后。

 With T1 lastrow = .Range("A" & .Rows.Count).End(xlUp).Row .Range("A5:I" & lastrow).Copy Destination:=NewSheet.Range("A" & NewSheet.Rows.Count).End(xlUp) End With 

这对我有效。 我也改变了到NewSheet 。 因为你的代码没有明确说明什么是正确的。