将单元格值复制到另一个工作表

时间:2015-08-10 14:51:08

标签: excel vba excel-vba

我没有做过很多excel VB编程,所以请耐心等待。

我在sheet1单元格E5中有一个随机数生成器,每次按 F9 ,我希望它将最新值复制到Sheet2中的最后一个单元格,A列。

我对此进行了一些研究,但我认为我没有正确设置。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 Then
        thisrow = Target.Row
        lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1
        Sheets("sheet2").Range("A" & lr).Value = Range("E" & ActiveCell.Row).Value
    End If
End Sub

我知道lr = Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row + 1有效,当我在即时窗口中运行时,它会拉出正确的单元格引用。

男人的问题是我不认为它是从我的工作表中正确调用的。由于该值永远不会复制到激活工作表。当我尝试换行时,我也没有得到任何回应。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于您使用的是两张,因此请务必在每次使用.Range.Cells等时提供工作表参考。

试试Sheets("sheet2").Range("A" & lr).Value = Sheets("sheet1").Range("E" & ActiveCell.Row).Value (当然,这假设您希望该范围为sheet1范围。

要检查这一点 - 如果您单步执行宏(在VB编辑器中按F8键),然后进入“粘贴”行,如果它没有页面,请按CTRL+G打开即时窗口。在该窗口中,键入?Range("E"&activecell.Row).Value以查看其值。