Как перейти к предыдущей активной ячейке? - PullRequest
0 голосов
/ 29 апреля 2019

Проблема: если в ячейку внесено изменение, мне нужно записать, кто внес изменение в эту ячейку. Поэтому сначала мне нужно найти номер строки, в которой произошли изменения. Обычно, когда данные вводятся чаще всего, в Excel используется кнопка «Ввод», в этом случае я могу сместить одну строку, чтобы получить фактический номер строки: RowNo = ActiveCell.Row -1 'Работает для кнопки Enter или клавиши со стрелкой вниз.

Однако, если пользователь решит использовать вместо мыши клавиши и переместится Влево / Вправо / вверх , тогда мое позиционирование будет неправильным.

Ниже приведен мой обновленный код, который не работает на Activecell. Предыдущий

Пожалуйста, помогите.

Код находится на самом листе для вызова при смене ячейки:

Private Sub Worksheet_Change(ByVal Target As Range)

*Dim KeyCells1 As Range
Dim PreviousCell As Integer
Set KeyCells1 = Range("A:B")
If Not Application.Intersect(KeyCells1, Range(Target.Address)) Is Nothing Then

        PreviousCell = ActiveCell.Previous.Row
End If
End Sub*

Все, что мне нужно, это номер строки, в которой произошли изменения. Ваша помощь и предложения очень ценятся.

1 Ответ

0 голосов
/ 29 апреля 2019

Если изменяется только одна ячейка:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells1 As Range
    Dim PreviousCell As Integer

    Set KeyCells1 = Range("A:B")

    If Not Application.Intersect(KeyCells1, Target) Is Nothing Then
        PreviousCell = Target.Row
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...