Excel,ActiveCell.Row取决于点击与按Enter键

时间:2015-02-01 20:05:28

标签: excel vba excel-vba

我在工作表中有VBA代码,这是一个工作表更改事件:

Private Sub Worksheet_Change

在这个工作表上,我有数据验证的下拉列表。所以我可以选择一个下拉菜单并选择“水果”。做出选择后,工作表更改事件会记录我当前所在的行,并使用该信息执行其他操作。

但是,如果我改为输入“Fruit”并按Enter键,则光标/选择器会向下移动一行,而工作表更改事件现在会指向错误的行。

有解决方法吗?我可以检测工作表更改事件是通过点击还是按Enter键来完成的?

或者有没有办法阻止某人输入任何内容并强迫他们点击?

或者有什么比ActiveCell.Row更好用吗?

1 个答案:

答案 0 :(得分:0)

使用Worksheet_Change时,您无需依赖ActiveCell。触发事件时,您还可以使用Target类型的参数Range,这可以通过数据验证选择器或手动编辑单元格并按Enter键来确定已更改的确切范围。 / p>

代码看起来像这样

Private Sub Worksheet_Change(ByVal Target As Range)
    Debug.Print Target.Address
End Sub