2011-07-05 4 views
1

나는 추가 기능을 수행하고 있으며 다른 워크 시트의 데이터를 입력하기 위해 동일한 통합 문서의 새 창을 열 필요가 있습니다. 새 창에 대해 입력 된 데이터에 대한 유효성 검사를 수행 할 수 있도록 창이 닫힐 때를 알아야합니다. 통합 문서 창이 닫힐 때를 알 수있는 방법이 있습니까?엑셀 통합 문서 창이 닫힐 때를 알아야합니다.

감사합니다.

답변

0

이 문서에서 살펴 보자 : http://support.microsoft.com/kb/213566

은 모듈과 클래스 모듈을 만듭니다. 코드는 다음과 같습니다.

클래스 모듈 코드 :

Public WithEvents appevent As Application 

Dim windowsCount As Integer 


Private Sub appevent_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window) 
If windowsCount <> Application.Windows.Count Then 
    MsgBox "You closed a window" 
End If 
End Sub 


Private Sub appevent_WindowDeactivate(ByVal Wb As Workbook, ByVal Wn As Window) 
windowsCount = Application.Windows.Count 
End Sub 

모듈 코드 :

Dim myobject As New Class1 


Sub Test() 

Set myobject.appevent = Application 

End Sub 

그리고 통합 문서에 대해이 핸들러 :

Private Sub Workbook_Open() 
Test 
End Sub 
+0

앤더슨,이 방법으로 작동하도록 할 수 있는지 알아 보도록하겠습니다. 나는 리본에 버튼을 추가 했으므로 사용자가 창에서 X 버튼 대신 버튼을 사용하여 창을 닫아야하므로 필요한 방식으로 사용자 정의 논리를 실행할 수 있습니다. 이상적인 해결책은 아니지만 지금까지 내가 해왔 던 모든 것입니다. –

-1

BeforeClose 이벤트를 처리 할 수 ​​있습니다. VBA를 사용하는 예는 here입니다.

+1

안녕 프레드릭, 당신의 응답을 주셔서 감사합니다. 마지막 통합 문서 창이 닫힐 때만 Workbook.BeforeClose 이벤트가 발생합니다. 필요한 것은 통합 문서 창 닫기 이벤트를 처리하는 것입니다. 따라서 Book1.xlsx : 1 및 Book1.xlsx : 2가있는 경우 Book1.xlsx : 2가 닫히는시기를 알아야합니다. –

관련 문제