2010-06-16 409 views
1

我有表格工具栏中有50多个复选框的电子表格。在少数情况下,您只能从一个组中选中一个复选框,即您选中复选框1中的一个复选框至复选框5.在Excel中相互排斥复选框(切换)

我试图在没有任何代码的情况下实现此功能。选项按钮不是首选,因为我想要一个统一的电子表格。

如何将复选框1分组为checkbox5,以便它们对于组成员互斥。

谢谢

回答

1

你可能想使用一个单选按钮,可能有各组之间的分隔符,因为这也意味着给最终用户,这些字段是互斥的。

按照定义,单选按钮在组内是互斥的。

请记住,在您应该使用无线电箱的地方使用复选框会让最终用户感到困惑,因为他们想知道为什么该复选框会突然失效,而使用单选按钮时混淆因素是不存在的。

+0

我试图找到另一种方式,然后使用单选按钮,因为我的spreasheet的其余部分都有复选框。我想保持电子表格的统一性。 – user362729 2010-06-16 18:29:11

+0

将特定元素的行为传达给最终用户通常比这种“一致性”更重要 - 请记住,通过使您的支票和收音机盒尺寸完全相同,可以实现这种一致性。 – alexanderpas 2010-06-18 00:01:45

0

如果您不能使用选项按钮,试试这个代码

Private Sub CheckBox1_Change() 

    With Me.CheckBox1 
     If .Value Then ClearGroup .GroupName, .Name 
    End With 

End Sub 

Private Sub CheckBox2_Change() 

    With Me.CheckBox2 
     If .Value Then ClearGroup .GroupName, .Name 
    End With 

End Sub 

Private Sub CheckBox3_Change() 

    With Me.CheckBox3 
     If .Value Then ClearGroup .GroupName, .Name 
    End With 

End Sub 

Private Sub ClearGroup(sGroup As String, sName As String) 

    Dim ole As OLEObject 

    For Each ole In Me.OLEObjects 
     If TypeName(ole.Object) = "CheckBox" Then 
      If ole.Object.GroupName = sGroup And ole.Name <> sName Then 
       ole.Object.Value = False 
      End If 
     End If 
    Next ole 

End Sub 
0

为什么你觉得选项(单选)按钮是互斥的?我有一个小组中有两个人。当我点击其中一个时,另一个打开。无法取消选择它们。他们最初是按照预期工作的,但是当我用另外两个选项按钮创建另一个不相关控件的组合时,奇怪的行为开始了。到目前为止,我能做的最好的是每个控制组合和NO组的单独单选按钮。