![]() |
|
#6
|
||||
|
||||
|
The following macro should be fairly quick at updating your Index entries:
Code:
Sub IndexUpdater()
Application.ScreenUpdating = False
Dim i As Long, strStl As String, strRef As String
With ActiveDocument
For i = 1 To .Fields.Count
With .Fields(i)
If .Type = wdFieldIndexEntry Then
If .Code.Fields.Count = 1 Then
With .Code.Fields(1)
If .Type = wdFieldStyleRef Then
strStl = .Code.Paragraphs(1).Style
strRef = Split(Split(.Code.Text, "STYLEREF")(1), Chr(34))(1)
If strRef <> strStl Then .Code.Text = Replace(.Code.Text, strRef, strStl)
End If
End With
End If
ElseIf .Type = wdFieldIndex Then
.Update
End If
End With
Next
End With
Application.ScreenUpdating = True
End Sub
.TablesOfContents(1).Update before the final 'End With'. Do note that a Tables of Contents inserted via References|Tables of Contents is far slower at updating than one created by inserting a TOC field. That's because the Tables of Contents inserted via References|Tables of Contents gets inserted in a kind of content control and it's that that imposes the performance hit.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
How do I update all fields from a new input
|
Kozzzle | Word | 7 | 10-19-2017 06:12 PM |
| how to update calculated fields | sectionbreak | Mail Merge | 4 | 06-04-2014 12:12 AM |
| Macro to update fields | rhatx | Word VBA | 0 | 03-02-2011 12:14 PM |
| VBA to update certain (but not all) fields | sparkyrose | Word VBA | 0 | 05-20-2010 12:50 PM |
| Can no longer update fields! | slindsay | Word | 0 | 09-03-2009 05:10 PM |