VBA复制并粘贴到下一个空行

时间:2017-10-19 18:22:22

标签: excel vba excel-vba

我正在尝试编写一个宏来复制来自名为"报告"(数字显然会改变)的工作表中的同一行信息,并将其粘贴到工作表中#34;数据"在第一行中有标题。我试图将值粘贴到下一个空行中,我似乎无法让它正常工作。

我尝试从各种问题中拼凑出一些代码并且无法解决问题。

这是我的代码:

Sub Insert_Data()
'
' Insert_Data Macro
Sheets("Report").Range("B9:F9").Copy
Sheets("Data").Range("A1").PasteSpecial Paste:=xlPasteValues,
Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Sub PSData_Transfer()

Sheets("Report").Range("B9:F9").Copy

Dim lastrow As Long
lastrow = Sheets("Data").Range("A65536").End(xlUp).Row

Sheets("Data").Activate
Cells(lastrow + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


End Sub

再次感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可能需要稍微修改一下才能使用您的代码,但请随意使用我在我当前的工作表中使用的代码并且它完美无缺!

Sub Insert_Data()

    For R = LR To 2 Step -1   ' Change the 2 in "To 2" to the row just below your header,
                              ' but typically row 2 is the second cell under header anyways
        Call CopyTo(Worksheets(2).Range("B" & R & ":C" & R), Worksheets(1)Range("A:B"))
    Next R

End Sub

Private Function CopyTo(rngSource As Range, rngDest As Range)

    LR = rngDest.cells(Rows.Count, 1).End(xlUp).row

    rngDest.cells(LR + 1, 1).value = rngSource.cells(1, 1).value
    rngDest.cells(LR + 1, 2).value = rngSource.cells(1, 2).value

End Function

我不喜欢使用复制方法,因为它很慢并且它喜欢复制所有额外的jar,因为获取值更快并且它只检索值