我想要更新单元格为“ H”的行和列。我尝试了以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("H:H")) Is Nothing Then
MsgBox Target.Row
End If
End Sub
当我单击单元格时,它会给我正确的行,但是当我编辑一个单元格并按Enter键时,消息将输出显示为下一行,而不是已编辑单元格的行。
如何获取已编辑单元格的行/列?
答案 0 :(得分:1)
您需要Worksheet_Change,而不是Worksheet_SelectionChange。
当您选择其他单元格或单元格范围时,将触发Worksheet_SelectionChange。
当一个或多个单元格的值因键入,粘贴或VBA而变化时,会触发Worksheet_Change。公式中计算值的更改不会触发它。要进行计算更改,请使用Worksheet_Calculate。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H:H")) Is Nothing Then
MsgBox Target(1).Row
End If
End Sub
Target很可能不只是一个单元格;因此是Target(1)。行以获取Target中的第一个单元格。