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