![]() |
#7
|
||||
|
||||
![]()
I think the code got tripped up with the multiple cross-references to the same endnotes. Try:
Code:
Sub Test() Application.ScreenUpdating = False Dim Fld As Field, EndNtRng As Range, FldRng As Range, i As Long, j As Long, Rng As Range, RngFld As Field With ActiveDocument For Each Fld In .Fields If Fld.Type = wdFieldNoteRef Then Set FldRng = Fld.Code i = Fld.Result While FldRng.Fields.Count = 0 FldRng.End = FldRng.End + 1 Wend Set EndNtRng = .Endnotes(i).Reference If EndNtRng.End > FldRng.End Then FldRng.Fields(1).Delete EndNtRng.Cut FldRng.Paste FldRng.Style = "EndNote Reference" j = FldRng.Endnotes(1).Index EndNtRng.InsertCrossReference ReferenceType:="Endnote", ReferenceKind:= _ wdEndnoteNumberFormatted, ReferenceItem:=j, InsertAsHyperlink:=True If FldRng.Characters.First = " " Then FldRng.Characters.First = vbNullString Set Rng = FldRng Rng.End = ActiveDocument.Range.End If i <> j Then For Each RngFld In Rng.Fields If RngFld.Type = wdFieldNoteRef Then If RngFld.Result = i Then Set FldRng = RngFld.Code While FldRng.Fields.Count = 0 FldRng.End = FldRng.End + 1 Wend FldRng.Fields(1).Delete FldRng.InsertCrossReference ReferenceType:="Endnote", ReferenceKind:= _ wdEndnoteNumberFormatted, ReferenceItem:=j, InsertAsHyperlink:=True End If End If Next End If End If .Fields.Update End If Next End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
kenglade | Word | 22 | 09-14-2012 04:10 PM |
![]() |
kenglade | Word | 4 | 12-03-2011 01:26 PM |
Index entries in endnotes | perhj | Word | 0 | 06-19-2011 09:28 AM |
![]() |
judicial85 | Word | 1 | 03-08-2011 10:33 PM |
Problems with pasting into another document | OneDayJD | Word | 0 | 04-25-2010 07:51 PM |