我没有做过很多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
有效,当我在即时窗口中运行时,它会拉出正确的单元格引用。
男人的问题是我不认为它是从我的工作表中正确调用的。由于该值永远不会复制到激活工作表。当我尝试换行时,我也没有得到任何回应。
提前谢谢。
答案 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
以查看其值。