2010-06-16 5 views
1

양식 도구 모음에 50 개 이상의 확인란이있는 스프레드 시트가 있습니다. 경우에 따라 그룹에서 1 개의 확인란 만 선택할 수 있습니다. 즉, 확인란 1에서 확인란 5까지 하나의 확인란을 선택합니다.Excel에서 상호 배타적 인 체크 박스 (토글)

가능한 경우 코드없이이 작업을 수행하려고합니다. 옵션 버튼은 제복을 입은 스프레드 시트를 원하기 때문에 바람직하지 않습니다.

확인란을 checkbox1에 그룹화하여 그룹에 대해 상호 배타적으로 만들 수있는 방법은 무엇입니까?

감사합니다

답변

1

당신이 또한 그 분야가 상호 배타적이라는 최종 사용자에게 의미로, 그룹 사이에 아마도 분리와, 라디오 버튼을 사용할 수 있습니다.

라디오 버튼은 정의상 그룹 내에서 상호 배타적입니다.

라디오 박스를 사용해야하는 장소에서 체크 박스를 사용하면 최종 사용자가 혼동을 일으킬 수 있습니다. 왜냐하면 라디오 버튼을 사용할 때 혼란 요인이 존재하지 않는 이유는 그 체크 박스가 갑자기 비활성화되는 이유입니다.

+0

나는 나머지 입력 원의 나머지 부분에 체크 박스가 있기 때문에 라디오 버튼을 사용하여 다른 방법을 찾으려고합니다. 내 스프레드 시트의 일관성을 유지하고 싶습니다. – user362729

+0

특정 요소의 동작을 최종 사용자에게 전달하는 것이 일반적으로이 "균일 성"보다 중요합니다. 이러한 일관성은 수표와 라디오 박스를 모두 동일한 크기로 만들어서 확인할 수 있습니다. – alexanderpas

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

는 왜 옵션 (라디오) 버튼을 상호 배타적 인 생각이 코드를 시도? 나는 한 그룹에 두 명을두고있다. 둘 중 하나를 클릭하면 다른 하나가 켜집니다. 그리고 선택을 취소 할 방법이 없습니다. 처음에는 의도 한대로 작동했지만 두 개의 옵션 버튼이있는 다른 링크 상자를 사용하여 관련이없는 컨트롤에 대한 두 번째 그룹을 만들었을 때 기괴한 행동이 시작되었습니다. 지금까지 내가 할 수있는 최선의 방법은 각 컨트롤 조합과 그룹을위한 별도의 라디오 버튼입니다.

관련 문제