popup式错误消息(macros) – 通过checkboxselect进行更新 – Excel 2010

我有一个基本上是我想要的macros(当两个冲突的checkbox被选中时提醒用户) – 下面的代码。 G2中的1是生成的值来表示这种情况。

该错误消息在SelectionChange上触发,但是这似乎仅在通过鼠标select了另一个单元格时才会显示。 工作表包含一系列供用户select的checkbox,用户只需使用checkbox,而不需要直接select或直接input单元格。 在这种情况下,即使所描述的场景发生,错误消息也不会被触发。

有没有办法通过更新工作表上的任何checkbox来触发msgboxmacros?

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("G2") = 1 Then MsgBox "ERROR - Select AND Reject checked" End If End Sub 

此外,我想扩大范围适用于列G中的所有单元格,我似乎无法得到这个为我工作。 我见过几个例子,引用了“G:G”,但到目前为止,只有这个例子才能用于一个单元格。

对于任何明显的错误提前道歉,我已经使用了一段时间的Excel – 但我是使用VBA全新的。

相互排斥的选项通常用选项button(也称为单选button)来代替checkbox。 是否有任何理由你没有使用选项button来完成这个任务?

至于为所有checkbox调用相同的代码,checkbox必须是表单控件(而不是ActiveX控件),您可以将它们分配给这个macros:

 Sub CheckBox_Clicked() Dim chk As CheckBox Set chk = ActiveSheet.CheckBoxes(Application.Caller) MsgBox chk.Name End Sub 

最后,为了让您的SelectionChange事件监视整个列,它看起来如下所示:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim ClickedCell As Range Dim rngClicked As Range Application.EnableEvents = False Set rngClicked = Intersect(Columns("G"), Target) If Not rngClicked Is Nothing Then For Each ClickedCell In rngClicked.Cells If ClickedCell.Value = 1 Then MsgBox "ERROR - Select AND Reject checked" Next ClickedCell End If Application.EnableEvents = True End Sub