Tag: 单击

Excel VBAcheckbox单击并更改事件相同?

我有5个checkbox为macros设置了一些选项,其中一个是Select / Unselect Allcheckbox。 当你select邮件删除或标记为已读等,我想创build类似于基于Web的邮箱的东西。当我检查select/取消全选checkbox,我把其余的checkbox的值为true,反之亦然当我取消选中。 没关系。 问题来了,当我也想validation,如果一切都没有检查,并逐一检查其他checkbox,如果最后我检查所有,然后select/取消select所有checkbox转到检查。 反之亦然,这意味着如果eveything被检查,然后取消其他四个之一,那么我将“All”checkbox设置为false(未选中)。 但是,似乎即使我只是设置了值,例如Option1Checkbox.value = True,在SelectAllCheckbox_Click事件中,它也触发了Option1Checkbox_Click和Option1Checkbox_Change事件。 不应该只是触发Change事件,因为我实际上没有点击该checkbox? 会发生什么事是我检查SelectAll,所以它将Option1选中,但是通过这样做,Option1也会触发click事件,所以它取消选中它再次触发click事件,然后再次取消选中Allcheckbox,最后留下一切没有检查,就像开始时一样。 希望这部分足够清楚。 我怎样才能避免这种行为? 我如何确保只有Change事件被触发,而不是Click事件? 有没有人有过这样的checkbox安排,并有类似的问题? 或者你是如何做到这一点,而没有我得到的行为? checkbox不在窗体上,而只在工作表上。 他们是ActiveX控件。 而我所拥有的并不复杂: Private Sub SelectAll_Click() Option1Checkbox.Value = SelectAll.Value Option2Checkbox.Value = SelectAll.Value Option3Checkbox.Value = SelectAll.Value Option4Checkbox.Value = SelectAll.Value End Sub 然后选项checkbox单击事件看起来像这样: Private Sub Option1Checkbox_Click() If Option1Checkbox.Value = True And Option2Checkbox.Value = True And Option3Checkbox.Value = True And […]