我想将行中的数据(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
答案 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