2014-01-05 3 views
1

워크 시트를 저장하기 전에 테이블의 모든 셀이 완료되었는지 확인하는 시트에 명령 단추 코드가 있습니다. 모두 완료되지 않은 경우 사용자 양식 메시지 상자가 미리 알림과 함께 팝업 한 다음 저장하지 않고 시트로 돌아갑니다. 그러나 'BeforeClose'이벤트에서도이를 호출 할 수 있기를 원합니다. 사용자 폼 메시지 상자가 표시되고 언로드 된 후에도 여전히 수행해야하는 작업을 수행하더라도 여전히 저장 대화 상자가 나타납니다. 닫기 저장 전에 대화 저장 안 함

내가 저장 대화 상자 또는 자동 "취소"를 선택하고 여기에 다른 문제의 몇 가지가 있습니다

Option Explicit 

Dim WSh As Worksheet 
Dim Create As Boolean 
Dim Pipe As Worksheet 
Dim LR As Long, i As Long 
Dim c As Variant 
Dim d As Variant 
Dim u As Variant 
Dim target As Variant 

Private Sub CommandButton1_Click() 

Application.ScreenUpdating = False 

Set Pipe = Sheets("Pipe Cleaning") 

Select Case Pipe.Range("N1") 

Case Is = False 

For Each d In Range("L18:L113") 

If d.Value >= 1 And d.Value <= 4 Then 
Mbox.Show 
Exit Sub 
End If 

Next d 

Case Is = True 

For Each u In Range("L18:L113") 

If u.Value >= 1 And u.Value <= 3 Then 
Mbox.Show 
Exit Sub 
End If 

Next u 

End Select 





Pipe.Activate 
Pipe.Unprotect 

Range("A8:A15").EntireRow.Hidden = False 

For Each c In Range("A8:A15") 
Select Case c.Value 
Case Is = "" 
    c.EntireRow.Hidden = True 

End Select 
Next c 

Pipe.Protect 

ActiveWorkbook.Save 
Application.ScreenUpdating = True 
End Sub 
+0

또한 여기에 게시됩니다. http : //www.mrexcel. co.kr/forum/excel-questions/748420-suppress-save-dialog-before-close-event.html – pnuts

+0

Google은이 문제에 대한 답을 많이 표시 한 것으로 보이며 SE에는 다른 사용자가 있다고 생각합니다. 그것들이 적합하지 않다면, 어떤 방식으로 설명해 주시겠습니까? – pnuts

+1

그들은 워크 북을 저장하지 않고 워크 시트로 돌아가서 다시 편집하기를 원하기 때문에 적합하지 않습니다. 디스플레이 알리미가 많이 언급되었지만 이것이 나에게 도움이되지 않습니다 – elmonko

답변

1

편집 시트로 돌아 억제하기 위해 사투를 벌인거야.

시트가 자체 기능으로 저장하는 데 유효한지 확인하려면 코드를 재배치해야합니다 (Set pipe =부터 End Select까지 관련된 변수 선언 포함). 저장을 마쳤다면 그 함수는 True을 반환합니다. 우리가 확인하지 않은 경우 즉 Click 이벤트 프로 시저 그냥 함수를 호출과 마찬가지로 BeforeClose 이벤트 프로 시저가 사용할 수있는 통합 문서

을 저장할지 여부를 결정하기 위해 반환 값을 검사 할 수 있습니다 완료 일단 다음 False

을 반환 우리가 저장할 수 있는지 여부를 결정하는 기능. 함수가 False을 반환하는 경우에 당신은

당신은 BeforeSave 이벤트 프로 시저가이 검사

을 수행해야하는지 여부를 고려해야 할 수도 닫는에서 통합 문서를 방지하기 위해 TrueBeforeClose 절차의 Cancel 인수를 설정합니다 프로그램이 저장 (숨김 또는 행 숨기기)하기 전에 다른 작업을 수행 할 때 별도의 Sub로 이동하고이를 필요로하는 이벤트 프로 시저에서 호출하려는 경우

관련 문제