Как связать 2 ячейки Excel?

2

Я знаю, как позволить значению одной ячейки зависеть от другой ячейки (используя = в формуле целевой ячейки).

Тем не менее, это можно сделать ссылку равной, например , что если изменить значение ячейки А, значение немедленно копируются в ячейку B, но также , если изменить значение ячейки B, ячейка А также изменяются?

По сути, это будет «та же» ячейка, но в двух местах, так что данные могут быть легко изменены в зависимости от того, на каком листе вы находитесь.

user56834
источник

Ответы:

3

Вы можете сделать это с помощью макроса VBA, который перехватывает Worksheet.Changeсобытие. Например, этот код будет синхронизировать ячейки B2и D10одну и ту же таблицу:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Application.EnableEvents = False
    If Target.Address = "$B$2" Then
        Range("$D$10").Value = Target.Value
    ElseIf Target.Address = "$D$10" Then
        Range("$B$2").Value = Target.Value
    End If
    Application.EnableEvents = True
End Sub

В редакторе VBA этот код должен храниться в рабочей таблице, в которой вы хотите обнаружить изменение, а не в рабочей книге или в модуле. Если вам нужно, чтобы две ячейки были на разных листах, вам понадобятся два макроса, по одному для каждого листа.

Обратите внимание, что нам нужно отключить события до того, как наш макрос изменит связанную ячейку, в противном случае это изменение вызовет другое событие, и Excel застрянет в бесконечном цикле. Имейте в виду, что если ваш код завершается с ошибкой, когда события отключены, вам нужно будет запустить макрос вручную, чтобы снова включить их.

nekomatic
источник
0

Выберите Bи белый, =Aи у вас будет зеркальная ячейка B. Изменение значения ячейки A немедленно изменит значение ячейки B. Пример:

пример

Хадиджа Альсафван
источник
1
Это не работает в обоих направлениях, как требует вопрос.
nekomatic