excel vba - проверить, выбран ли переключатель? - PullRequest
3 голосов
/ 02 октября 2011

bt

Я пытаюсь проверить значение этих простых групп переключателей, но мой синтаксис выключен, кто-нибудь знает, что изменить? Примечание. Это кнопки параметров Excel, а не ActiveX, и они не имеют пользовательской формы.

 If Worksheets("Input").Shapes("Option Button 3").Select.Value = xlOn Then
     MsgBox "fir"
 ElseIf Worksheets("Input").Shapes("Option Button 4").Select.Value = xlOn Then
     MsgBox "sec"
 Else
     MsgBox "none" 'in case they were deleted off the sheet
 End If

Ответы [ 2 ]

7 голосов
/ 02 октября 2011

Попробуйте это

Sub ZX()
    Dim shp3 As Shape
    Dim shp4 As Shape

    On Error Resume Next
    Set shp3 = Worksheets("Input").Shapes("Option Button 3")
    Set shp4 = Worksheets("Input").Shapes("Option Button 4")
    On Error Goto 0 
    If shp3 Is Nothing Then
        If shp4 Is Nothing Then
            MsgBox "none" 'in case they were deleted off the sheet
        ElseIf shp4.ControlFormat.Value = xlOn Then
            MsgBox "sec"
        Else
            MsgBox "Only Button 4 exists and it is off"
        End If
    Else
        If shp3.ControlFormat.Value = xlOn Then
            MsgBox "fir"
        Else
            If shp4 Is Nothing Then
                MsgBox "Only Button 3 exists and it is off"
            ElseIf shp4.ControlFormat.Value = xlOn Then
                MsgBox "sec"
            Else
                MsgBox "Both exists, both are off"
            End If
        End If
    End If

End Sub
0 голосов
/ 21 декабря 2018

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

Call ThisWorkbook.Sheets("MySheet").toggleDisplay(CBool(ThisWorkbook.Sheets("MySheet").ToggleButton1.Value))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...