У меня есть группа радиокнопок с метками в соседних ячейках. Как мне сделать так, чтобы радиокнопка с меткой, соответствующей значению целевой ячейки, активировалась?
Вот эквивалентный пример того, чего я пытаюсь добиться:
Здесь вы видите две радиогруппы: «покупатель» и «адресат». Метки находятся в столбце A, радиогруппы — в столбце B, а целевые значения — в столбце C. Значения в столбце C — это то, что мы контролируем, и мы хотим активировать нужную радиокнопку, найдя значение целевой ячейки в списке меток в столбце A. То есть, если C2 изменилось на «Внутренний», то мы хотим активировать радиокнопку в ячейке B4. Радиокнопки в B7 и B8 не будут затронуты, так как они находятся в другой группе.
решение1
Вам не нужно на самом деле читать значение метки. Вы можете назначить метки кнопкам выбора и изменить значение выбранной опции таким образом.
Вы можете вызвать это в Worksheet_SelectionChange
Sub reflectCell()
Dim targetedCell As String
targetedCell = Range("A1").Text
Select Case UCase(targetedCell)
Case "RED"
ActiveSheet.OptionButton1.Value = True
Case "BLUE"
ActiveSheet.OptionButton2.Value = True
Case "GREEN"
ActiveSheet.OptionButton3.Value = True
End Select
Конец субтитра
Если только вы не имеете в виду, что метка — это значение ячейки, смежной с OptionButton, является ли целевая ячейка статическим расположением Range или текущей ActiveCell?
Если целевая ячейка всегда находится в одном и том же месте, вы можете контролировать написание ввода следующим образом.
Вот еще один более простой подход
Решение без использования макросов, которое работает, если вы можете использовать формулы на листе, показано на этом снимке экрана.
Назовите каждую кнопку выбора так же, как метку в столбце A. Связанная с ней ячейка должна быть другой ячейкой (которая может быть скрыта, примеры в E — формулы, показанные в F), в этой ячейке сравните вводимые вами данные с каждой меткой ячейки. Только одна должна быть ИСТИНА (см. примеры формул)
Таким образом, опция в B2 связана с E2, B3 связана с E3, B7 связана с E7 и т. д. Если вам разрешен дополнительный столбец с формулами (а они могут быть где угодно), это намного проще, чем использовать VBA.