2016-06-09 2 views
0

문서의 머리글 색을 변경하는 매크로를 만들었지 만 문서의 끝에 도달 할 때 또는 남아있는 머리글이없는 경우 - 오류.MS Word 매크로에서 Do 루프를 끝내는 방법

내가 원하는 것은 문서 끝의 마지막 헤더 다음에 Do 루프를 종료하는 것입니다.

여기 내 코드입니다 :

Sub Changecolortest5() 
' 
' Changecolortest5 Macro 
' 
' 
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then 
     ActiveWindow.Panes(2).Close 
    End If 
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ 
     ActivePane.View.Type = wdOutlineView Then 
     ActiveWindow.ActivePane.View.Type = wdPrintView 
    End If 
    Do 
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader 
    Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend 
    Selection.Font.Color = 8527984 
    ActiveWindow.ActivePane.View.NextHeaderFooter 
    Loop 
'Exit Header and Footer 
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 
End Sub 

답변

0

이 헤더 주소/바닥 글이 최적으로 기록 된 매크로를 잘 작동하지 않습니다, 그래서 당신이 우리에게주는 것보다 약간 다른 접근 방법을 보여 드리겠습니다. 아래 코드는 기본 개체 인과 직접 작동하며 선택 항목이 아닌 Range에 서식을 적용합니다. 이것은 더 빠르며 화면이 "깜박이지 않습니다".

머리글과 같은 그룹으로 작업 할 때 For-Each 루프를 사용하여 그룹을 순환하는 것이 더 일반적입니다. 이 경우 머리글은 섹션에만 해당되므로 섹션을 반복합니다. 이 라인을 따라 뭔가 : 당신이 보면

Dim doc as Word.Document 
Dim sec as Word.Section 

Set doc = ActiveDocument 
For Each sec in doc.Sections 
    sec.Headers(wdHeaderFooterPrimary).Range.Paragraphs(1).Range.Font.Color = 8527984 
    sec.Headers(wdHeaderFooterFirstPage).Range.Paragraphs(1).Range.Font.Color = 8527984 
Next 

또한 수행에 대한 도움말 항목은 그들이 루프를 종료하기 위해 테스트을 요구 것을 볼 수 있습니다 루프 : Do While 또는 Do Until 또는 Loop While 또는 Loop Until 일정 기준이 충족됩니다. 나는 당신이 우리에게 보여주는 코드가 당신에게 오류를 줄 것임을 확신한다 - 질문을 할 때 항상 을 포함해야한다. 모든 오류 메시지를 포함하여 관련 정보 ...

+0

안녕하세요. 도움 주셔서 감사합니다. 내 코드에서 오류가 발생하더라도 계속해서 On Error GoTo를 넣는 것입니다. 깜박임을 제거하도록 도와 주실 수 있습니까? 글자 수 제한 때문에 내 코드를 붙여 넣을 수 없습니다. ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument Selection.HomeKey 단위 : 서브 = wdStory 끝 –

+0

매크로가 좋은 난 그냥 고토 도움말 루프 도움말 내가 오류에 ActiveWindow.ActivePane.View.NextHeaderFooter 을 추가 하나를 붙여 그 눈 깜짝 할 사이에. 하지만 그 머리 색깔의 모든 난 그냥 머리글의 첫 번째 행을 착색하고 싶다. [Click Here] (http://i66.tinypic.com/3038sa9.jpg) –

+0

질문 아래의 [편집] 링크를 사용하여 그림과 같은 추가 정보를 추가 할 수 있습니다. 현재 모바일 장치를 사용하고 있지만 나중에 나중에 후속 작업을 수행 할 시간을 찾으려고합니다. –

관련 문제