
Я знаю, как сделать так, чтобы значение одной ячейки зависело от другой ячейки (используя = в формуле целевой ячейки).
Однако возможно ли сделать равную ссылку, так что если я изменю значение ячейки A, то это значение немедленно скопируется в ячейку B, нотакжеесли я изменю значение ячейки B, ячейка A также изменится?
По сути, это будет «одна и та же» ячейка, но в двух местах, чтобы данные можно было удобно изменять в зависимости от того, на каком листе вы находитесь.
решение1
Вы можете сделать это с помощью макроса 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 застрянет в бесконечном цикле. Имейте в виду, что если ваш код завершается с ошибкой, пока события отключены, вам нужно будет вручную запустить макрос, чтобы снова включить их.