Динамически, непрерывно, задайте значение ячейки в соответствии с значением ActiveCell (которое находится на другом листе)

У меня есть книга с двумя листами, Rep и Aux .
Я хочу динамически установить Aux!A2 на значение ActiveCell , которое находится на листе Rep , но только если ActiveCell находится в столбце D этого листа (в диапазоне Rep!D2:D5000 ).
В довершение всего мне нужен этот механизм для работы до тех пор, пока рабочая книга активна, а не только один выстрел.

Например : находясь на листе Rep , ActiveCell курсор, т.е. ActiveCell на ячейку D2 . Я ожидаю, что Aux!A2 будет установлено значение Rep!D2 . Я перемещаю курсор, скажем, Rep!F5 и не ожидаю, что ничего не произойдет с Aux!A2 , наконец, я активирую Cell Rep!D7 и снова ожидаю, что Aux!A2 получит значение ActiveCell . Продолжайте, пока я не закрою книгу.

Мои навыки VBA отсутствуют и Googling, единственное, что отдаленно близко к тому, что я описал, было:

 Sub Macro1() If Not Intersect(ActiveCell, Sheets("Rep").Range("D2:D5000")) Is Nothing Then Sheets("Aux").Range("A2").Value = ActiveCell.Value End Sub 

Что не удается полностью.

Поместите это в код рабочего листа «Rep». Триггеры в любое время, когда ячейка выбрана на этом листе, если ячейка находится в столбце 4 (D), тогда она устанавливает значение ячейки в Aux для соответствия.

 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Column = 4 Then ThisWorkbook.Worksheets("Aux").Cells(2, 1).value = Target.Value End If End Sub 

EDIT: В ответ на комментарии.

 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) End Sub 

Эта подпрограмма – это событие, которое существует на каждом листе. Каждый раз, когда изменяется выбор, он запускает любой код, который вы в него вставляете. Часть «ByVal Target as Excel.Range» заявляет, что дает вам копию выбранного диапазона целей, поскольку вы можете выбрать более одной ячейки.

 If Target.Column = 4 Then end if 

Это блок if. Если условие истинно, будет выполняться любой код между «Then» и «End If». Условие заключается в том, если в этом случае столбец цели равен 4.

 ThisWorkbook.Worksheets("Aux").Cells(2, 1).value = Target.Value 

Это устанавливает ячейку в строке 2 столбца 1, чтобы она соответствовала значению выбранной цели.

Теперь, когда я думаю об этом, я задаюсь вопросом, что этот код будет делать, если вы выберете диапазон ячеек …..

Interesting Posts

Excel несколько условий для каждой строки в нескольких строках (приветствуются решения массивов или скриптов) (Пороги производительности предприятия)

Формула должна вернуть значение, если дата находится в пределах 1 месяца

VBA 2015 «форма» Тип undefined

Перенос данных в Excel

XL2003: Изменение этого файлаWindowsWindows (). Видимое свойство во время Workbook_Before Закрытие события препятствует закрытию книги

Проверка наличия в VBA ключа вложенного словаря

Временная метка каждой строки, которая изменяется при изменении нескольких ячеек (например, с помощью автозаполнения)

Perl Excel :: Writer :: XLSX-> new ('myfile.xlsx') генерирует несоответствующую ошибку ввода-вывода в Windows 8 env

Объединение кадра данных в список

Проблема при открытии некоторого файла excel при экспорте в excel-функцию в веб-приложении c #

Создание файла Excel из массива с использованием php и symfony

Найти запись определенной ячейки в столбце в VBA

Сравнение столбцов Excel с использованием Python

В наборе данных необходимо выбрать правильные даты на основе относительности к сегодняшней дате

application.visible = true несколько книг

Давайте будем гением компьютера.