2013-04-12 2 views
1

사용자 폼에 옵션 버튼 그룹이 있고 각 그룹의 옵션 버튼 하나 이상을 클릭했는지 확인해야합니다. 각 단추의 값을 개별적으로 검사하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 옵션 버튼 그룹 전체를 참조 할 수 있습니까?옵션 버튼 그룹에서 하나 이상의 옵션 버튼이 선택되었는지 확인하는 방법

+1

잘 모르겠습니다. 그러나 더러운 대안이 있습니다 (루프를 원하지 않을 경우를 대비하여). 3 그룹이 있다고 가정 해 보겠습니다. 그런 다음 3 개의 공용 변수를 선언하십시오. 옵션 버튼의 클릭 이벤트에서 변수를 True로 설정하십시오. 이제 3 가지 변수가 true인지 아닌지를 간단히 확인하십시오 :) –

+0

예제가 필요한 경우 알려주십시오. –

+0

아니, 괜찮아. 알았어. 유일한 문제는 옵션 버튼이 많은 경우 각 버튼의 클릭 이벤트에 대한 코드를 추가하는 데 약간의 어려움이 있다는 것입니다. –

답변

0

또 다른 방법은 각 그룹에 대해로드 할 때 기본값을 설정하는 것입니다. 그런 식으로 루핑을하지 않고 공개 변수를 추가 할 필요가 없으며 그룹의 옵션 버튼에 체크 표시를 할 이유가 없습니다.

예를 보여 편집 (I는 또한이기도 투박한 해킹 인정) :

당신이 값을 포함하는 셀 범위를 사용하여 반대하지 않는 경우

, 당신은 옵션 버튼의 "ContolSource"속성을 사용할 수 있습니다 그것을 셀로 설정하십시오. 다음과 같음 :

Private Sub UserForm_Initialize() 
    Sheet1.Range("A:B").Delete 
' Group 1 
    OptionButton1.ControlSource = "Sheet1!A1" 
    OptionButton2.ControlSource = "Sheet1!A2" 
' Group 2 
    OptionButton3.ControlSource = "Sheet1!B1" 
    OptionButton4.ControlSource = "Sheet1!B2" 
End Sub 

이제 각 열에 값이있는 셀 수를 계산할 수 있습니다. 열에 최소 1 개의 값이있는 경우 해당 그룹에 옵션 버튼이 선택되었음을 알 수 있습니다.

+0

감사합니다. 그렇다고 생각했지만 실제로 사용자가 적극적으로 선택하길 원합니다. –

+0

@ aardvark123 다른 해결책을 제시하기 위해 제 대답을 편집했습니다. – sous2817

+0

감사합니다. 나는 이것이 상황을 동적으로 다루기위한 최선의 해결책이라고 생각한다. –

관련 문제