[英]How to get the row of the updated cell in Excel VBA?
我想要更新的单元格的行和列,其列为“ 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时,消息将输出显示为下一行,而不是已编辑单元格的行。
如何获得已编辑单元格的行/列?
您需要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).Row获得Target中的第一个单元格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.