VBA 在范围内更改

问题描述 投票:0回答:1

即使在没有 rng.offset(-1,) 的情况下按 Intro,我也需要模块返回已修改单元格的地址。

当单元格被修改时。该模块返回下面单元格的值,而不是已修改的单元格。有没有办法返回下移之前修改过的单元格的值?

这就是我正在做的事情:

Public xTab As Worksheet

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    
    Set xTab = ThisWorkbook.Worksheets("Report")

    Set rng = ActiveCell

    If Not Intersect(Target, xTab.Range("A:A")) Is Nothing And Selection.Count = 1 Then
            Debug.Print rng.Value
    End If

End sub

如果我修改单元格:A2并按介绍。它将返回 A3 的值而不是 A2。

有没有办法在不使用 rng.offset(-1,) 的情况下避免这种情况?

谢谢!

excel vba
1个回答
0
投票

您可以简化为:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.CountLarge > 1 Then Exit sub 'only interested in single-cell changes

    If Target.Column = 1 Then Debug.Print Target.Value 'in ColA?
    
End sub
© www.soinside.com 2019 - 2024. All rights reserved.