我正在尝试为Excel 2013编写VBA宏。其目的是将两个工作表合并到一个组合工作表中。 (我试图找到一个内置功能来做到这一点,但无法找到我需要的东西。)
宏需要做的是:
激活" Sheet3"并清除从第3行开始的所有行
进入" Sheet1"并复制以(A3:P3)开头的所有行,并向下复制,直到并且不包括A列中第一行为null。
进入" Sheet3"并从A3开始粘贴这些行。
进入" Sheet2"并复制以(A3:P3)开头的所有行,并向下复制,直到并且不包括A列中第一行为null。
进入" Sheet3"并从那一行开始,从A列的第一个空单元格开始。
我是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
关于我应该如何工作的任何想法?
由于
答案 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点只是上述内容的变体。我相信你现在可以从这里拿走:)。如果您仍遇到任何困难,只需回复即可。