复制单元格区域并粘贴到第一个空行更有效的代码? 高强
我有一个macros从“新search”中select单元格,并将该范围粘贴到“过去的search”中的第一个打开的单元格中。我在考虑我的代码是非常无效的。 有没有人有任何想法,我可以改善这一点?
Sub Macro5() Range("A3:J3").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("Past Searches").Select Range("A1").End(xlDown).Offset(1, 0).Select ActiveSheet.Paste Worksheets("New Searches").Activate Application.CutCopyMode = False End Sub
首先,您不必使用。select或。激活您将操作的单元格/工作表,只需直接引用它们即可。 这可以真的减慢你的代码。
.Copy方法可以带一个Destination参数,所以你不必在其他地方使用.Paste。
另外,.End属性不是很可靠。 改用UsedRange最好。
你可以做很多只有一行。
Worksheets("New Search").Range("A3:J3").Copy Destination:=Worksheets("Past Searches").UsedRange.Columns(1).Offset(1, 0)
法比奥感谢您指引我正确的方向,我不能把这个混乱,以简明的代码。
numofrows = ActiveSheet.UsedRange.Rows.Count` Worksheets("New Searches").Range("A3", "J" + CStr(numofrows)).Copy Destination:=Worksheets("Past Searches").Range("A1").End(xlDown).Offset(1, 0)
这最终做了我需要做的事情。
你也可以这样做,所以你不需要numofrows?
Worksheets("New Searches").Range(Range("A3:J3"), Range("A3:J3").End(xlDown)).Copy Destination:= _ Worksheets("Past Searches").Range("A1").End(xlDown)