Excel VBA复制并粘贴到另一个工作表中的下一个空白行

时间:2016-06-28 18:05:32

标签: excel vba excel-vba excel-vba-mac

我正在尝试仅使用击键记录一个宏,并且在最后的击键时遇到了一个问题,因为它没有按照我的预期进行操作。我正在做的一些背景 - 我正在处理增长的数据和滚动图表来绘制最后4行数据。我正在尝试从一张纸上复制数据并将其粘贴到另一张纸上我桌子上的下一个空行。因为我正在使用击键,我希望宏记录点击次数,但这不是它正在做的事情。相反,它会将数据直接粘贴到记录宏的精确单元格而不是下面的空单元格。例如,我已经在C19中有数据。当我运行宏时,我希望它将新数据粘贴到C20中,而是粘贴在C19上。我想我需要添加/编辑我的VBA,以便将新数据粘贴到另一个工作表的下一个空行中。我希望这是有道理的。任何帮助都感激不尽!

谢谢!

Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range("C3").Select
ActiveCell.FormulaR1C1 = "=DATE(YEAR(RC[-1]), MONTH(RC[-1])+1, DAY(RC[-1]))"
Range("C3").Select
Selection.Copy
Range("B3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
Range("C3").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("B85:K146").Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
Range("B9").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
Range("A1").Select
ActiveSheet.Next.Select
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range("E71:G71").Select
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
ActiveSheet.Next.Select
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
Selection.End(xlUp).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Range("C5").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("C19").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

End Sub

1 个答案:

答案 0 :(得分:0)

如果你读到如何直接编码而不是录制宏,其他人评论它是最好的。作为快速解决方案虽然这应该有所帮助:

替换它:

service apache2 restart

用这个:

Range("C19").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

.End(xlUp)所做的是从第1,000,000行向上寻找包含某些内容的第一个单元格。 .Row获取它所在的行,+ 1表示我们想要下一行。单元格是表达范围的另一种方式,在线查找范围和单元格,它将帮助您前进。