将3张纸合并为1张

时间:2014-06-19 11:57:31

标签: excel vba excel-vba

我想要一个脚本,从另一个工作簿中提取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中?我错过了什么谢谢!

1 个答案:

答案 0 :(得分:3)

Destination:=来电后,您遗失了.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

这对我有用。我还将wks更改为NewSheet。因为你的代码没有说明wks究竟是什么。