Я хочу сделать переключатель Excel активным / неактивным, в зависимости от значения другой ячейки.

Я сделал следующую попытку:

Sub test()
If ActiveSheet.Cells(9, 3).Text = 3 Then
    ActiveSheet.OptionButton20_Click.Active = False
Else
    ActiveSheet.OptionButton20_Click.Active = True
End If
End Sub

В окне макроса VBA, но я получил следующее сообщение об ошибке:

"Object doesn't support this property or method"

Как я могу это исправить, пожалуйста? (Excel Mac 2011)


Чтобы уточнить, когда я говорю "неактивный", я имею в виду серый цвет - я не просто имею в виду, что он не был выбран.

Например:

Группа 1 радио кнопок: мужской или женский

Группа 2 радио кнопок: очки o серьги o борода

В этом случае, если выбран "Женский", я хочу, чтобы "Борода" стала невыбираемой.


Теперь у меня есть следующий текст в моем "модуле 1":

Sub hide_group_box()
ActiveSheet.GroupBoxes.Visible = False
End Sub

Sub disable_radio()
If ActiveSheet.Cells(3, 3).Text = 3 Then
    ActiveSheet.OptionButton65.Enabled = False
End If
End Sub

Первое, что скрывает Group Boxes, работает нормально. Вторая вещь, похоже, не работает. Я все еще не так?

1 ответ1

0

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

У меня есть три варианта: нравится, не нравится, нет. Только один может быть выбран, потому что они являются переключателями.

Что вы хотите сделать, это установить ваши переменные как таковые:


Sub doSelectedTest()

    Dim shapeLikes As Shape
    Dim shapeDislikes As Shape
    Dim shapeNone As Shape


    Set shapeLikes = Worksheets("picks").Shapes("Option Button 6")
    Set shapeDislikes = Worksheets("picks").Shapes("Option Button 7")
    Set shapeNone = Worksheets("picks").Shapes("Option Button 8")

    If shapeLikes.ControlFormat.Value = xlOn Then
        MsgBox "Likes"
    End If
    If shapeDislikes.ControlFormat.Value = xlOn Then
        MsgBox "Dislikes"
    End If
    If shapeNone.ControlFormat.Value = xlOn Then
        MsgBox "NONE"
    End If
End Sub

Итак, в вашем случае:

Dim myShape As Shape
Set myShape = Worksheets("picks").Shapes("Option Button 65")

If ActiveSheet.Cells(3, 3).Text = 3 Then
    myShape.ControlFormat.Value = xlOff
End If

Или, если в этом сценарии желательно отключить кнопку 65, тогда myShape.ControlFormat.Включено = Ложь или.Видимый = Ложный

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