Вы можете сделать это с помощью макроса 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 застрянет в бесконечном цикле. Имейте в виду, что если ваш код завершается с ошибкой, когда события отключены, вам нужно будет запустить макрос вручную, чтобы снова включить их.