2014-02-06 2 views
1

저는 VBA 언어에 익숙하지 않아서 제 문제를 해결할 수 있도록 도와 드리겠습니다.VBA - Documents.Activate 기능이 제대로 작동하지 않습니다.

기본적으로 내가하고 싶은 것은 MS Word 2010 문서를 연 상태에서 새 문서를 열어 초점을 설정하고 문서로 처리하는 것입니다.

내가 직면 한 문제는 새 문서를 효과적으로 열 수 있지만 그 뒤에 오는 지침이 첫 번째 문서에서 여전히 실행되므로 .activate 함수가 기능을 설정하는 기능이 작동하지 않는다는 것입니다. 그것은 도움이 될 수있는 경우

Private Sub BOK_Click() 

*...instructions...* 

'Opens a new document 
Application.Documents.Add 

'Select the latest opened document and sets the focus on it 
Application.Documents(Application.Documents.Count).Activate 

* do stuff * 

End Sub 

은 전체 문맥은 다음과 같습니다 : 내가 6 프리 필드 템플릿 메인 템플릿을 가지고 있고, 사용자의 선택에 따라 (에서 여기

내 코드입니다 드롭 다운 양식)은 미리 채워진 오른쪽 템플리트를 선택하고 새 Word 문서에서 열어 기본 템플리트를 닫습니다.

답변

1

Documents.Add는 무엇을 :

  • 올립니다 렌더링 창에
  • 디스플레이 그것을 제공 (또는 보통,이 경우) 템플릿의 사본을 창
  • 만들기 열려있는 모든 문서의 인덱스 1
  • 새로 추가 된 문서에 인덱스 1을 할당하십시오.
  • 창을 앞쪽으로 가져 초점을 맞추십시오.

방금 ​​추가 한 문서를 명시 적으로 활성화 할 필요가 없습니다. 활성화 (Activate)를 사용해야하거나 사용하고 싶다면 색인을 드리프트하는 경향이 있으므로 (위에서 설명한 것처럼) 이름을 기준으로 문서를 참조하는 것이 가장 좋습니다.

doc1 = ActiveDocument.Name 
Documents.Add 
doc2 = ActiveDocument.Name 
' Do something with document2 
Documents(doc1).Activate 
' Do something with document1 
Documents(doc2).Activate 
' Do something with document2 again