2016-09-16 2 views
0

У меня есть 4 кнопки управления формой на листе. Я пытаюсь установить жесткую остановку перед функцией печати, если все 4 кнопки опций остались непроверенными. Я успешно получил все мои флажки (используемые формы не образуют контроль), чтобы вызвать, если оставить пустым, но ничего не получаю для кнопок.Определите, не сняты ли все кнопки опций на листе

If ActiveSheet.OptionButtons("button3") = Unchecked _ 
And ActiveSheet.OptionButtons("button20") = Unchecked _ 
And ActiveSheet.OptionButtons("button45") = Unchecked _ 
And ActiveSheet.OptionButtons("buttonEpic") = Unchecked Then 
MsgBox "Missing" 
Cancel = True 
End If 
End Sub 

Я также попытался = False и .value = false. Все кнопки в настоящее время не отмечены, но это не вызывает окно сообщения или жесткую остановку. Спасибо за любую помощь!

+0

Может быть, [это] (http://stackoverflow.com/a/30905789/6352151) может помочь вам –

+0

Если OptionButton будет установлен, то '.Value' будет = 1 –

+0

спасибо за комментарий. У меня нет проблем с VBA, определяющим контроль формы, который я не думаю. Я могу проверить и снять флажки с помощью кода и получить приглашение, если не все кнопки отмечены/true, что всегда будет так, потому что только один может быть выбран одновременно. – Awill

ответ

0

очень простой обходной путь, так как я могу идентифицировать установленную кнопку опций на листе, но не если она не проверена. Я просто определяю, проверена ли одна из четырех кнопок, ничего не делать, если это правда и отменить, если false.

Private Sub Workbook_BeforePrint (Cancel as Boolean) 

With ActiveSheet 
If .Optionbuttons ("button1").Value = Checked _ 
Or .Optionbuttons ("button2").Value = Checked _ 
Or .Optionbuttons ("button3").Value = Checked Then 
Exit Sub 
Else: Msgbox "Please select an option" 
Cancel = True 
End If 
End With 
End Sub 
Смежные вопросы