Нужен адрес ячейки измененной ячейки в отфильтрованных данных - PullRequest
0 голосов
/ 24 апреля 2018

Я ломал голову над этим, гуглюсь и ищу безрезультатно, так что, надеюсь, кто-то может помочь.

У меня есть проект, в котором пользователи открывают электронную таблицу, которая извлекает данные с сервера SQL. Если пользователь изменяет данные в одном из трех столбцов, эти данные обновляются обратно на сервер SQL.

Пока у меня есть эта часть, работающая с использованием события «Worksheet_Change» с использованием следующего простого тестового кода, она возвращает адрес измененной ячейки в столбце «A», который в конечном итоге этот измененный адрес ячейки будет передан в подпрограмму для обновления SQL-сервер с измененными данными.

Мой тестовый код до сих пор ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Changed_Cell As Range
If Target.Column = 1 Then
    For Each Changed_Cell In Target
        MsgBox ("Changed_Cell : " & CStr(Changed_Cell.Address))
    Next Changed_Cell
End If
End Sub

Хотя это работает, моя проблема в том, что мне нужно это для работы с автоматически отфильтрованными данными, так как пользователи любят использовать автофильтры, и им говорят «никакие автофильтры не являются опцией».

Приведенный выше код работает с автофильтрами, если за один раз я изменяю только одну ячейку в фильтруемом диапазоне. Если я пытаюсь изменить несколько ячеек в отфильтрованном диапазоне, он ломается.

Итак, мне нужно что-то, что для каждой измененной ячейки в столбце с автоматической фильтрацией дает мне индивидуальные адреса каждой измененной ячейки, а не диапазон. (надеется, что это имеет смысл)

1 Ответ

0 голосов
/ 25 апреля 2018

Изолировать столбец A от потенциальных ячеек в Target.

Private Sub Worksheet_Change(ByVal Target As Range)

    If not intersect(Target, Columns(1)) is nothing Then
        Dim Changed_Cell As Range
        For Each Changed_Cell In intersect(Target, Columns(1))
            MsgBox ("Changed_Cell : " & CStr(Changed_Cell.Address))
        Next Changed_Cell
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...