VBA와 새 창 제어/조작에 관한 세 가지 질문이 있습니다.워크 시트 _ 새 시트 코드 활성화
몇 장이 설정되어 있습니다.
마스터 | 워크 시트 1 | 워크 시트 2 | 노트 | 작업 주문 | 연락처 정보
1) WorkSheet_Activate 기능을 Notes, Work Orders, Contact Info에 설정하여 별도의 창에서 세 장을 모두 열고 수직으로 정렬하십시오.
Private Sub WorkSheet_Activate()
ActiveWindow.NewWindow
ActiveWindow.NewWindow
Windows.Arrange ArrangeStyle:=xlVertical
Sheets("Notes").Select
Windows("Mastersheet.xlsm:2").Activate
Sheets("Work Orders").Select
Windows("Mastersheet.xlsm:1").Activate
Sheets("Contact Info").Select
End Sub
이 시트를 다시 활성화하면 더 많은 창이 열립니다. 나는 창문이 이미 열려 있고 깨져 있는지 감지 할 수있는 코드를 원한다.
2) 이제 마스터와 같은 다른 시트를 탐색 할 때 여분의 창을 닫고 마스터 시트를 활성화하고 싶습니다. 마스터 시트에 다음 코드를 사용하고있었습니다.
Private Sub WorkSheet_Activate()
Windows("Mastersheet.xlsm:2").Activate
ActiveWindow.Close
Windows("Mastersheet.xlsm:1").Activate
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
이 코드의 문제점은 추가 창이 열려 있지 않으면 오류가 발생한다는 것입니다. 이 기능을 작동시키기 위해 어떤 종류의 논리 검사를 수행 할 수 있습니까? 어떤 값을 확인할 지 모르겠다.
3) 마지막 문제는 통합 문서 내의 매크로에 의해 동적으로 생성 된 새로운 시트가 있다는 것입니다. 새로운 워크 시트는 여러 창을 닫고 activesheet에 초점을 맞추는 위 코드를 수행하지 않습니다. 코드를 넣어야하는 다른 객체가 마스터에 적용되도록해야합니까? 워크 시트 1 | 워크 시트 2 시트 및 새 시트? 윈도우가 이미 열려있는 경우
완벽하게 작동합니다. 필자가 작성한 코드를 이해하고 이해하기 위해 최선을 다할 것입니다. 도와 주셔서 대단히 감사합니다 dkusleika! –
VBA 세계에서 꽤 표준이라는 것을 알고 있지만,이 코드는 헝가리 표기법 없이는 더 깨끗할 것이라고 생각합니다. – User