我正在尝试编写VBA,它将使我所有的复选框都询问用户是否真的要更改复选框的状态。
我写了这样一段话:
Sub ConfirmCheckbox()
If MsgBox("Are you sure you want to check this box?", vbYesNo, "Confirm Checkbox") = vbYes Then
ActiveSheet.CheckBoxes(Application.Caller).Value = True
Else
ActiveSheet.CheckBoxes(Application.Caller).Value = False
End If
End Sub
但是如果某人由于先前的误点击而想要取消选中该框,则他将面临点击“是”(“是的,我想要取消选中”)将不会改变任何事情的问题,其中应当取消选中该框。
此外,我想将此更改应用到我的所有复选框一次。
我希望这不会让你很困惑。
感谢您的帮助!
2条答案
按热度按时间fquxozlt1#
这对我很有效:
a64a0gku2#
将
ActiveSheet.CheckBoxes(Application.Caller).Value
的值保存在某处,然后使用Not
将boolean
切换为true/false
由于某种原因,我不能直接使用
val = ActiveSheet.CheckBoxes(Application.Caller).Value
,所以我添加了一个额外的If Then Else
来设置值