我有工作表1,列A到D。
一旦填充了工作表1中的单元格C,我想创建一个执行要复制到工作表2的行的按钮。
我根本没有Excel经验,到目前为止,我发现并修改了这个宏代码以满足我的需求:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Cells.Count = 1 Then
Target.EntireRow.Copy _
Destination:=Sheets(2).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
End Sub
但是当我尝试创建一个按钮来执行这个宏时,它永远不会工作。请有人帮我解决这个问题。
答案 0 :(得分:0)
这是你在尝试什么?详细了解Worksheet_Change
HERE
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim lRow As Long
On Error GoTo Whoa
Application.EnableEvents = False
If Target.Cells.CountLarge > 1 Then Exit Sub
Set ws = ThisWorkbook.Sheets("Sheet2")
lRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row + 1
If Not Intersect(Target, Columns(3)) Is Nothing Then _
Target.EntireRow.Copy Destination:=ws.Rows(lRow)
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
修改强>
如果代码仍无效,则从VBA编辑器中按 CTRL + G 以显示即时窗口并键入此
Application.EnableEvents = True
并按 ENTER 键,现在代码可以正常工作。