从一个工作表复制一系列单元格并插入下一个空行

时间:2015-10-19 22:10:59

标签: excel vba excel-vba

我想将行中的数据(A1:B1)复制到另一个工作表的下一个空行,并删除该行。我尝试了以下代码,但它只适用于特定的单元格。不确定如何为下一个空行执行此操作。有人能帮助我吗?

此外,我希望每当编辑(A1:B1)时都会发生这种情况。只要编辑A1:B1,宏就应该初始化。

Sub Macro5()
'
' Macro5 Macro
'
' Keyboard Shortcut: Ctrl+w
'
    Range("A1:B1").Select
    Selection.Copy
    Sheets("Sheet1").Select
    Range("A32").Select
    ActiveSheet.Paste
    Sheets("Sheet2").Select
    Application.CutCopyMode = False
    Selection.ClearContents
End Sub

1 个答案:

答案 0 :(得分:0)

在主要工作表的代码模块中(这是您要从中复制的模块),请执行以下例程:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Column < 3 Then
            If Target.Row < 2 Then
                On Error Resume Next
                Application.EnableEvents = False
                With Sheet2
                    .Cells(.Rows.Count, "a").End(xlUp)(2).Resize(, 2) = [a1:b1].Value
                    [a1:b1].Delete xlUp
                End With
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

注意:这可以有效地完成您的要求,但似乎是一个奇怪的请求......

<强>更新

在查看OP的工作簿之后,这是我提供的程序:

Sub Transfer2ndSheetRow1To1stSheet()
    With Sheet2
        If .[counta(1:1)] Then
            Sheet1.Cells(.Rows.Count, "a").End(xlUp)(2).EntireRow = .[1:1].Value
            .[1:1].Delete xlUp
        End If
    End With
End Sub