VBA(宏)复制和粘贴
我正在尝试创建一个宏,它允许我在每次激活时复制工作表1中某个单元格的值(同一个单元格,但在计算后可能会有不同的结果),并将这些结果的值粘贴到工作表2中(可能在A1;A2;A3;中)。每次我进行计算时这是我编写的一段代码示例,但它不起作用:VBA(宏)复制和粘贴,vba,copy-paste,Vba,Copy Paste,我正在尝试创建一个宏,它允许我在每次激活时复制工作表1中某个单元格的值(同一个单元格,但在计算后可能会有不同的结果),并将这些结果的值粘贴到工作表2中(可能在A1;A2;A3;中)。每次我进行计算时这是我编写的一段代码示例,但它不起作用: Sub recorder() If Cells(B, i) <> Empty Then i = i + 1 Worksheets(1).Select Cells(A1).Copy Worksheets(2).Select Cells(B, i)
Sub recorder()
If Cells(B, i) <> Empty Then
i = i + 1
Worksheets(1).Select
Cells(A1).Copy
Worksheets(2).Select
Cells(B, i) = Cells(A1)
End If
End Sub
子记录器()
如果单元格(B,i)为空,则
i=i+1
工作表(1)。选择
单元格(A1)。复制
工作表(2)。选择
单元(B,i)=单元(A1)
如果结束
端接头
任何帮助都将不胜感激。谢谢将此粘贴到此工作簿中。 无论您如何更改Sheet1上单元格A1中的值,它都会显示在Sheet2上A列中最近的空白单元格中。注意,您不需要运行宏,它会自动执行
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Sh.Index = 1 Then Exit Sub
If Not Target.Address = "$A$1" Then Exit Sub
If Worksheets(2).Range("A65536").End(xlUp).Value = Empty Then
Worksheets(2).Range("A65536").End(xlUp).Value = Target.Value
Else
Worksheets(2).Range("A65536").End(xlUp).Offset(1, 0).Value = Target.Value
End If
End Sub
我想这就是你想要的:
Sub recorder()
Sheets(2).Cells(Rows.Count, "B").End(xlUp).Offset(1).Value = Sheets(1).Range("A1").Value
End Sub
但是,如果“A1”是结果单元格,即A1=B1+C1,则代码不会在第2页中注册结果,为什么?