CheckBox (UserForm) не проверяется при нажатии пользователем
У меня есть два флажка в UserForm (Excel) с именами, например ( , ) .
Проблема в том, что когда я нажимаю A_CB , а затем нажимаю B_CB , тогда B_CB не проверяется автоматически, хотя код под ним выполняется правильно.
Пробовал удалить и создать заново, но та же проблема.
Как ни странно , эта проблема возникает, когда я нажимаю, но если я нажимаюB_CB
затемA_CB
тогда нет проблем.
Я даже установил значение для этого флажка = true, но та же проблема.
Заранее благодарен за всю вашу помощь.
Dim ctrl As control
Dim control As control
Private Sub A_CB_Click()
Set ctrl = Me.A_CB
If ctrl = False Then
ctrl.ForeColor = vbBlack
ActiveSheet.AutoFilter.ShowAllData 'Clear All Filters
ActiveSheet.UsedRange.EntireRow.Hidden = False 'UnHide All Rows
Exit Sub
End If
ctrl.ForeColor = vbBlue
For Each control In Me.Controls
If Not TypeOf control Is MSForms.Label Then
If Not TypeOf control Is MSForms.Frame Then
If control.name <> ctrl.name Then
control.value = False
control.ForeColor = vbBlack
End If
End If
End If
Next
End Sub
Private Sub B_CB_Click()
Set ctrl = Me.B_CB
If ctrl = False Then
ctrl.ForeColor = vbBlack
ActiveSheet.AutoFilter.ShowAllData
ActiveSheet.UsedRange.EntireRow.Hidden = False
Exit Sub
End If
ctrl.ForeColor = vbBlue
For Each control In Me.Controls
If Not TypeOf control Is MSForms.Label Then
If Not TypeOf control Is MSForms.Frame Then
If control.name <> ctrl.name Then
control.value = False
control.ForeColor = vbBlack
End If
End If
End If
Next
End Sub
1 ответ
Когдаb_CB
нажимается, вы циклически перебираете все элементы управления и очищаете их значения. Это изменение наa_CB
совпадает с событием Click, а код вa_CB_Click
выполняется. Это обновление общей переменной с именем . Затем, когда код продолжается внутриb_CB_Click
, значение имениctrl
больше не является "b_CB" и поэтому также очищается.