2

Я хотел бы связать 2 выпадающих списков в Excel. Поиск решений всегда приводил к каскадным выпадающим спискам. То, что я хочу, это два выпадающих списка с одинаковыми параметрами. Когда вы меняете один, другой тоже меняется.

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

2 ответа2

1

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

Как вы узнали, ссылки на эти формулы друг друга создают круговые ссылки. Даже если это сработает, как только вы выберете значение из раскрывающегося списка, любая формула будет перезаписана.

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

В модуле Sheet1:

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell A1
If Not Intersect(Target, Range("A1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet2, cell b1
    ThisWorkbook.Worksheets("Sheet2").Range("B1") = Range("A1")
    Application.EnableEvents = True
End If
End Sub

В листовом модуле Sheet2

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell B1 on sheet 2
If Not Intersect(Target, Range("B1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet1, cell A1
    ThisWorkbook.Worksheets("Sheet1").Range("A1") = Range("B1")
    Application.EnableEvents = True
End If
End Sub
0

Как сказал Тейлин, это невозможно точно так, как вы хотели бы, чтобы это работало.

Другой обходной путь, кроме VBA, заключается в использовании раскрывающегося списка управления формой вместо списка проверки данных:

  • Перейдите на вкладку "Разработчик" (если она не отображается, затем включите ее в соответствии с приведенными здесь инструкциями) - Вставка - элементы управления формой - «Поле со списком (элемент управления формой)»
  • вставить его и изменить размер, чтобы покрыть ячейку
  • щелкните по нему правой кнопкой мыши и перейдите "контроль"
  • введите "диапазон ввода" и "ссылка на ячейку"
  • скопируйте его и вставьте куда-нибудь еще, теперь, поскольку обе имеют одинаковую ссылку на ячейку, если вы измените одну из них, другая тоже будет обновлена.

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