将 3 张纸合并为 1 张纸
Posted
技术标签:
【中文标题】将 3 张纸合并为 1 张纸【英文标题】:Merging 3 Sheets Into 1 Sheet 【发布时间】:2014-06-19 11:57:30 【问题描述】:我想要一个脚本,它可以从另一个工作簿中提取 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 中?我错过了什么。谢谢!
【问题讨论】:
如果你声明所有变量,你会为自己省去一个痛苦的世界,并按照这里的解释强迫自己这样做:***.com/q/1139321/119775 【参考方案1】:在您拨打.Copy
之后,您错过了Destination:=
。
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
到底是什么。
【讨论】:
以上是关于将 3 张纸合并为 1 张纸的主要内容,如果未能解决你的问题,请参考以下文章