2012-12-19 1 views
0

Excel의 통합 문서가 확인란의 상태에 따라 닫히지 않도록하려고합니다. '에서 ThisWorkbook'에 배치됩니다Excel 2010의 BeforeClose 및 ActiveX CheckBox 값 사용

내 샘플 코드 : 순간

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    If CheckBox0.Value = "FALSE" Then 
    b = MsgBox("Are you sure that you want to submit?", vbYesNo) 
    End If 
    If b = vbNo Then Cancel = True 

End Sub 

, 내가 만약 CheckBox0.Value..... 줄에서 런타임 오류 424 개체에 필요한 및 디버그 포인트를 얻고있다.

내가 뭘 잘못하고 있는지 나는 잘 모르겠다. 나는 정규 VBA 사용자가 아니다.

도움말.

+0

어디 여기

당신을 위해 무엇을 찾고있는 내 생각이다 체크 박스? –

답변

1

나는 당신이 포함 된 체크 박스 (ActiveX)를 사용하고 있다고 생각한다. 그렇다면 체크 박스가있는 시트를 지정해야합니다. 복수 시트에 Checkbox0을 가질 수 있기 때문에 Checkbox0이라고 말할 수는 없습니다.

"False"은 문자열이 아니며 부울 값이기 때문에 False을 사용할 수 있습니다. 고유 한 VBA 키워드이기 때문에 "False"을 확인할 수 없습니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    Dim b As Long 
    If (Sheets("Sheet1").CheckBox1.Value = False) Then 
     b = MsgBox("Are you sure that you want to submit?", vbYesNo) 
    End If 

    If b = vbNo Then Cancel = True 
End Sub 

편집 : :.

이 확인란에 살고 시트 이름을 "Sheet1"을 전환 할 얘기를 깜빡 했네요

+0

+1, 두 문제를 모두 해결했다고 생각합니다. –