将 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 张纸的主要内容,如果未能解决你的问题,请参考以下文章

Word怎样在一张纸上放多张图片

我试图将一张纸上的错误打印在另一张纸上,但无法弄清楚如何

Excel表格太大,无法同时打印在一张纸上?一键帮你轻松搞定!

可以将行中的数据从一张纸复制到另一张纸吗?

将每个唯一值从一张纸复制并粘贴到另一张纸上

Excel 单元格从一张纸到另一张纸