저는 주로 기술 문서를 작성합니다. 문서에는 많은 상호 참조가 필요합니다. 내 상호 참조 형식은 항상 동일합니다.
<heading-number> <space> <heading-text>.
상호 참조 대화 상자를 사용하여 이를 추가하는 것은 고통스럽습니다. 제목을 찾고, 드롭다운에서 단락 번호를 선택하고, 삽입하고, 드롭다운에서 단락 텍스트를 선택한 다음, 삽입하고, 문서로 돌아가서 공백을 삽입합니다(일반적으로 삽입된 제목 텍스트를 기울임꼴로 변경합니다).
이 작업을 수행하는 더 편리한 방법이 있습니까? 상호 참조에 대한 기존 질문을 살펴봤지만(그리고 그 질문이 많이 있습니다) 이 문제를 다루는 내용은 없는 것 같습니다.
답변1
나는 다음을 썼다.매크로설명했던 상호 참조 대화 상자의 모든 번거로움을 피하면서 편안하게 상호 참조를 삽입할 수 있습니다. 또는
중 하나를 삽입할 수 있지만 원하는 조합을 삽입하도록 쉽게 조정할 수 있습니다.<heading-number>
<heading-text>
답변2
7년 전이지만 아직도 사람들은 그것과 싸우고 있습니다. 내 작은 기여는 다음과 같습니다. Dim strCode As String
With Dialogs(wdDialogInsertCrossReference)
.ReferenceType = "Numbered item"
.ReferenceKind = wdNumberRelativeContext
.InsertAsHyperlink = True
.SeparateNumbers = False
.Show
End With
Selection.TypeBackspace 'trick it selects the complete field
Selection.Copy
Selection.MoveRight Unit:=wdCharacter, Count:=1 ' unselect
Selection.TypeText Text:=" " ' Separate with one space
Selection.PasteAndFormat (wdPasteDefault) ' duplicate the copied field
Selection.TypeBackspace ' Select the duplicated field
strCode = Selection.Fields(1).Code ' get the code from the field
strCode = Replace(strCode, "\r ", "") ' Remove option to have paragraph text
strCode = Replace(strCode, "\w ", "")
Selection.Fields(1).Code.Text = strCode ' Update the text of the ;code text
Selection.Fields.Update ' Update the field to display § text
Selection.MoveRight Unit:=wdCharacter, Count:=1 ' Deselect the updated field
Selection.TypeText Text:=" " ' add a space at the end
서브 끝
있는 그대로 제공되면 저에게 효과적입니다 ;-) 즐거운 시간을 보내시고 즐거운 시간을 보내세요...
답변3
Vince S의 솔루션은 완벽하게 작동합니다. 아직 평판이 50이 아니기 때문에 논평할 수는 없지만 Vince, 귀하의 솔루션은 훌륭합니다! 그것은 나에게 엄청난 시간을 절약해줍니다.