2010-06-16 412 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組的單獨單選按鈕。