Как сделать отслеживание входной статуи в EXCEL - PullRequest
0 голосов
/ 13 марта 2012

Я хочу, чтобы мой лист Excel отслеживал мой ввод.

Например, когда я ввожу что-то вроде ID и нажимаю клавишу ВВОД, он найдет этот идентификатор на другом листе и найдет NAME и заменитИдентификатор в исходной ячейке, куда я ввожу.

В VBA все в порядке, чтобы сделать это?

Простой пример был бы хорош, спасибо.

Обновление:

Да, конечно, только некоторые определенные ячейки я буду вводить идентификаторы, поэтому не весь лист нужно отслеживать.

1 Ответ

2 голосов
/ 13 марта 2012

Используйте обработчик событий Worksheet_Change(ByVal Target As Range) (определенный для рабочего листа) для вашей задачи. Эта функция будет вызываться каждый раз, когда изменяется значение ячейки этого листа (пользователем или другим кодом ).

Параметр Target содержит диапазон ячеек, которые были изменены. Теперь переберите столбцы и строки в этом диапазоне и выполните операцию поиска / замены, которую вы хотите выполнить. С помощью дополнительной логической переменной убедитесь, что обработчик событий не вызывает сам себя.

Public NoCellUpdateHandle As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If NoCellUpdateHandle Then Exit Sub

    Dim row As Integer, col as Integer, idValue as String, replaceValue as String

    For Each columnObj In Target.Columns
        For Each rowObj In columnObj.Rows
            row = rowObj.Row
            col = columnObj.Column

            ' You can filter for certain rows/columns
            If row > 5 And row < 10 And col = 7 Then
                idValue = ActiveSheet.Cells(row, col).Value
                ' do the lookup for the id value in the other worksheet here
                ' replaceValue = lookup(idValue)

                ' Disable the event handler and perform the replacement
                NoCellUpdateHandle = True
                ActiveSheet.Cells(row, col).Value = replaceValue
                NoCellUpdateHandle = False
            End If
        Next rowObj
    Next columnObj
End Sub

Это должно быть все, что тебе нужно.

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