
Я хотел бы связать 2 выпадающих списка в Excel. Поиск решений всегда приводил ккаскадныйвыпадающие списки. Мне нужны два выпадающих списка с одинаковыми параметрами. Когда вы меняете один, другой тоже меняется.
Я пробовал просто ссылаться друг на друга, но, конечно, получаю ошибку циклической ссылки. Я бы с удовольствием сделал это без VBA, если это возможно, так как у меня их будет много, но если это невозможно, я пойму.
решение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
решение2
Как заявила Тейлин, это невозможно сделать именно так, как вам бы хотелось.
Другим обходным решением, помимо VBA, является использование раскрывающегося списка элемента управления формы вместо списка при проверке данных:
- Перейдите на вкладку «Разработчик» (если ее нет, включите ее согласно инструкции)здесь) - Вставка - элементы управления формы - "Поле со списком (элемент управления формы)"
- вставьте его и измените размер так, чтобы он покрывал ячейку
- щелкните правой кнопкой мыши по нему и выберите «управление»
- введите «диапазон ввода» и «ссылку на ячейку»
- скопируйте его и вставьте в другое место, теперь, поскольку у обоих адресов одна и та же ссылка на ячейку, если вы измените любой из них, другой тоже обновится.