2013-12-19 1 views
0

워크 시트가 보호되어 있는지 여부에 따라 워크 시트에 배치 된 체크 박스를 설정하는 간단한 하위 항목이 있습니다. 내가 잘못 뭘하는지체크 박스 값을 변경할 때 '변수가 정의되지 않았습니다'오류가 발생합니다.

어떤 아이디어를 정의되지

변수 - 내가 그것을 참조 어디 라인 중 하나에 컴파일 오류를 받고 있어요하여

chkToggleProtect 절대적 존재?

Private Sub SetToggleProtect(ByRef isprotected As Boolean) 

    If isprotected Then 
     chkToggleProtect.Checked = True 
    Else 
     chkToggleProtect.Checked = False 
    End If 

End Sub 
+0

을 이것은'Forms' 체크 박스가 또는'Controls' 체크 박스? – Manhattan

+0

'양식'체크 박스입니다. –

+1

아래 내 대답이 적용됩니다. 그냥'cb.Name' 제대로 할당하십시오. ;) – Manhattan

답변

1

그 이유는 정확하게 오류가 발생했습니다.이 하위 변수와 관련된 변수는 존재하지 않습니다. 모든 것을 완전히 자격을 얻는 것을 잊지 마십시오. 이것은 Forms 확인란 인 경우

, 다음 작동합니다 :

Private Sub CheckACheckbox(isProtected As Boolean) 
    Dim cb As CheckBox 
    If cb.Name = "ModifyMe" Then 
     If isProtected Then 
      cb.Value = True 
     Else 
      cb.Value = False 
     End If 
    End If 
End Sub 

수정 따라 이용할 수 있습니다.

+0

고마워요. 실제로 그 일을합니다. –

1
직접 실행 창 일부 giggery - pokery (나의 새로운 가장 친한 친구), 내가 이렇게 내 워크 시트에 배치 된 Forms 컨트롤에 액세스 할 수 있음을 발견 그래서 후

-

Private Sub SetToggleProtect(ByRef IsProtected As Boolean) 

    If IsProtected Then 
     WS.Shapes("chkToggleProtect").ControlFormat.Value = xlOn 
    Else 
     WS.Shapes("chkToggleProtect").ControlFormat.Value = xlOff 
    End If 

End Sub 
+0

+1 직접 답을 얻으려면. ;) – Manhattan

+0

:) 글자 그대로 지금까지, 나는'Debug.Print'를 위해 거의 독점적으로 그것을 사용하는 직접 실행 창을 실제로 얻지 못했습니다. 바라기를 그 나쁜 소년은 나에게 많은 두통을 미래에 저장할 것이다! –