Кнопка включения, если все флажки отмечены - PullRequest
0 голосов
/ 27 мая 2020

У меня есть код vba, назначенный кнопке с именем «запустить отчет». У меня есть инструкции с флажками, и я пытаюсь включить кнопку, только если все флажки отмечены. Я пробовал что-то вроде ниже, но почему-то не работает. Кажется, что-то не так с декларацией. Я использую версию ms office 2013.

Sub buttonenable()
Dim B1 as Button
Dim C1 as Checkbox
Dim C2 as Checkbox
Dim C3 as Checkbox
Set B1 = Thisworkbook.Sheets("Home").Button("Run report")
Set C1 = Thisworkbook.Sheets("Home").Checkbox("Checkbox1")

Set C2 = Thisworkbook.Sheets("Home").Checkbox("Checkbox2")

Set C3 = Thisworkbook.Sheets("Home").Checkbox("Checkbox3")

IF C1 = True and C2 = True and C3 = True Then
B1.Enable = True

Else
B1.enable = False

End If

End Sub()

1 Ответ

0 голосов
/ 27 мая 2020
Sub ButtonEnable()
   Dim ws As Worksheet

   Set ws = Worksheets("Sheet1")

   If ws.OLEObjects("chkbox1").Object.Value And _
      ws.OLEObjects("chkbox2").Object.Value Then
      ws.OLEObjects("CommandButton1").Object.Enabled = True
   Else
      ws.OLEObjects("CommandButton1").Object.Enabled = False
   End If

   Set ws = Nothing
End Sub

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

Private Sub chkbox1_Click()
   ButtonEnable
End Sub

Private Sub chkbox2_Click()
   ButtonEnable
End Sub

Я предполагаю, что вы используете элементы управления ActiveX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...