Как я могу позволить пользователю моего листа Excel вводить данные в любую из двух ячеек и обновлять обе ячейки?

  • У меня есть ячейка A4 в листе 1.
  • У меня есть ячейка B7 на листе 2.

Если пользователь вводит 100% в ячейку A4 на листе 1, обе ячейки A4 и B7 должны сказать 100%. Если пользователь вводит 80% в ячейку B7 на листе 2, обе ячейки A4 и B7 должны сказать 80%.

Я использую Excel 2013, но у меня есть доступ к 2016 году.

1 ответ1

0

Если вам нужна динамическая связь между ячейками или диапазоном ячеек, между рабочими листами или даже рабочими книгами для ввода данных в обоих направлениях, то VBA является лучшим решением. Так как любая Формула не будет щелкать по нему.

Вам нужно написать следующий код VBA в обоих листах.

Для листа 1:

Private Sub Worksheet_change(ByVal Target As Range)
 If Not Intersect(Target, Range("A4")) Is Nothing Then
   If Target = Range("A4") Then
    Sheets("Sheet2").Range("B7").Value = Target.Value
  End If
End If

End Sub

Для листа 2:

Private Sub Worksheet_change(ByVal Target As Range)

If Not Intersect(Target, Range("B7")) Is Nothing Then
  If Target = Range("B7") Then

    If Sheets("Sheet1").Range("A4").Value <> Target.Value Then
     Sheets("Sheet1").Range("A4").Value = Target.Value
    End If
  End If
End If

End Sub

Примечание: код листа 2 проверит, не совпадают ли значения в обеих ячейках, затем обновите лист 1. Если вам это не нужно, просто удалите строку оператора If.

Надеюсь, это поможет вам, я опубликовал код VBA после того, как он был проверен мной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .