Если цикл использует несколько значений флажка в качестве условия If - PullRequest
0 голосов
/ 31 декабря 2018

В приведенном ниже коде я пытаюсь установить значение флажка как истинное, только когда три других флажка имеют значение true.когда я использую простую инструкцию IF для проверки выполнения, код пропускается, даже если все условия соблюдены.

Private Sub CommandButton1_Click()
    Dim wsA As Worksheet
    Dim wbA As Workbook
        With wsA
            If CheckBoxes("Check Box 416").Value = True & _
                CheckBoxes("Check Box 417").Value = True & _
                CheckBoxes("Check Box 418").Value = True Then
                CheckBoxes("Check Box 68").Value = True
            Else
                CheckBoxes("Check Box 68").Value = False
            End If
        End With
End Sub

Есть ли другой способ получить вышеуказанный результат?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Вам просто нужен AND оператор.

Private Sub CommandButton1_Click()
Dim wsA As Worksheet
Dim wbA As Workbook
    With wsA
        If (CheckBoxes("Check Box 416").Value = True) And _
            (CheckBoxes("Check Box 417").Value = True) And _
            (CheckBoxes("Check Box 418").Value = True) Then
            CheckBoxes("Check Box 68").Value = True
        Else
            CheckBoxes("Check Box 68").Value = False
        End If
    End With
End Sub
0 голосов
/ 31 декабря 2018

Вы хотите убедиться, что флажок 68 равен ИСТИНА, только если все 416 417 и 418 однозначно ИСТИНА.

Вы можете сделать это с помощью побитового сравнения и полностью удалить оператор if

(Обратите внимание, что я удалил ссылки wSA / wSB, поскольку они не влияют на ваш код (они не Set, поэтому не уверены, что с ними делать):

Private Sub CommandButton1_Click()
CheckBoxes("Check Box 68").Value = _
    CheckBoxes("Check Box 416").Value And _
    CheckBoxes("Check Box 417").Value And _
    CheckBoxes("Check Box 418").Value
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...