Создайте флажок ActiveX, который проверяет и снимает все остальные флажки - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть лист с множеством флажков. Первый из них имеет заголовок Check All, и когда вы нажимаете на него, все флажки должны быть отмечены. Это прекрасно работает, но я также хочу снять все флажки, сняв флажок, и я не могу заставить это работать. Я получаю ошибку 1004. Это код, который я пытаюсь:

Private Sub CheckBox1_Click()
On Error GoTo finished
For i = 2 To 200
    If ActiveSheet.OLEObjects("CheckBox1").Object.Value = True Then ' <- this line gives the 1004 error
        ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = False
    Else
        ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = True
    End If
Next i
Exit Sub
finished:
End Sub

1 Ответ

1 голос
/ 28 апреля 2020

Работает нормально для меня - я бы предложил пару небольших изменений - используйте Me вместо activesheet и упростите логику c для установки других флажков.

Private Sub CheckBox1_Click()
    Dim i As Long, bOn As Boolean

    bOn = Me.OLEObjects("Checkbox1").Object.Value
    For i = 2 To 200
        Me.OLEObjects("Checkbox" & i).Object.Value = bOn
    Next i

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