繁体   English   中英

如何在Excel VBA中获取更新的单元格的行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM