复制范围直到空行并粘贴到新工作表中

时间:2014-10-22 19:27:39

标签: excel vba excel-vba

我正在尝试为Excel 2013编写VBA宏。其目的是将两个工作表合并到一个组合工作表中。 (我试图找到一个内置功能来做到这一点,但无法找到我需要的东西。)

宏需要做的是:

  1. 激活" Sheet3"并清除从第3行开始的所有行

  2. 进入" Sheet1"并复制以(A3:P3)开头的所有行,并向下复制,直到并且不包括A列中第一行为null。

  3. 进入" Sheet3"并从A3开始粘贴这些行。

  4. 进入" Sheet2"并复制以(A3:P3)开头的所有行,并向下复制,直到并且不包括A列中第一行为null。

  5. 进入" Sheet3"并从那一行开始,从A列的第一个空单元格开始。

  6. 我是VBA的新手但是我设法找到了以下代码,并且我试图让它完成上述要求。

    Sub CreateCombinedSheet()
      lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
      ActiveSheet.Range("A3", ActiveSheet.Cells(lastRow, 12)).Copy
    End Sub
    

    我试着写下它的一部分并在我去的时候测试它,但我已经得到了1004错误:

    Application-defined or object-defined error

    关于我应该如何工作的任何想法?

    由于

1 个答案:

答案 0 :(得分:0)

  

激活“Sheet3”并清除从第3行开始向下的所有行

您无需激活工作表即可清除行。您可能希望看到THIS您可以直接说

Sheets("BlahBlah").Rows("3:200").ClearContents

我以硬编码200为例。要查找行的结尾,请参阅以下内容。

  

进入“Sheet1”并复制以(A3:P3)开头的所有行,并向下复制,直到并且不包括A列中第一行为null。

同样的。你不需要去那张表。您需要先找到最后一行。我看到你正在硬编码代码中的行。你不需要这样做。 xl2007 +现在有1048576行。使用.Rows.Count请参阅THIS

  

进入“Sheet3”并从A3开始粘贴这些行。

要粘贴,您再次无需转到该表。你可以直接说

rng.Copy Sheet("BlahBlah").Rows(3)

您的第4点和第5点只是上述内容的变体。我相信你现在可以从这里拿走:)。如果您仍遇到任何困难,只需回复即可。