【问题标题】:Copy and Paste Multiple Sheets to One Sheet将多张工作表复制并粘贴到一张工作表
【发布时间】:2021-10-19 04:20:54
【问题描述】:

我有多个列数相同但行数不同(不断变化)的工作表(例如 Sheet1、Sheet2、Sheet3)。
我想将所有这些合并到一张纸上。

合并表上的标题已预先设置,因此我开始粘贴到该表的第 2 行。

Sheet1 = 5000 行(包括标题行)- 底部没有空白行

Sheet2 = 300 行(包括标题行)- 同上

Sheet3 = 1200 行(包括标题行)- 同上

合并 = 1 行(仅限标题行)- 同上

当我将 Sheet1(第一张工作表)粘贴到 Consolidation 时,它确实从第 2 行开始,但它也会粘贴空白行以将整个工作表填充到 1,048,576 行(工作表的限制)。

我如何找到第一个空白行,然后将 Sheet2 数据(从第 2 行)粘贴到底部,然后继续类似的下一张工作表。

Sheets("Sheet1").Range("A2:CF" & Rows.Count).Copy
Sheets("Consolidate").Activate
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False

【问题讨论】:

    标签: excel vba count copy-paste


    【解决方案1】:

    您没有指定最后一行来进行复制粘贴。尝试类似的方法,并尽量避免使用 select。

    Sub CheckDuplicateAcrossWorkbook()
    Dim pullWs As Worksheet, dropWS As Worksheet, lastRow As Long
    
    Set pullWs = Sheets("Sheet1")
    Set dropWS = Sheets("Consolidate")
    
    'make sure no rows are hidden)
    lastRow = pullWs.Cells(Rows.Count, 1).End(xlUp).Row
    
    pullWs.Range("A2:CF" & lastRow).Copy
    dropWS.Range("A2").Paste
    Application.CutCopyMode = False
    
    
    End Sub
    

    【讨论】:

    • 哦,谢谢!我开始拔头发了! - 第一部分现在完美运行。显然我的舌头没有放在嘴的右侧。 :P 关于 Sheet2 和 Sheet3 数据,我不知道要为 dropWS 粘贴哪一行,您对如何修改以查找下一个可用/空白行有什么建议吗? (那么大概只是将值作为变量插入的情况?)
    • 啊,回答了自己的问题:我需要做一个额外的 DIM LastRowConsolidated 来识别该表上的那一行 (+ 1),然后为每个连续的表更新其余部分以添加数据。感谢您的帮助,并为我指明了完成编码的正确方向。干杯。
    • 很高兴它成功了。感谢您的接受。
    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    相关资源
    最近更新 更多