![]() |
#6
|
||||
|
||||
![]()
Hi Jana,
Try the following macro: Code:
Sub InsertRefs() Application.ScreenUpdating = False Dim RngHd2 As Range, RngHd3 As Range, RngRef As Range, oPara As Paragraph With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = "" .Style = "Heading 2" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With Do While .Find.Found Set RngHd2 = .Paragraphs(1).Range.Duplicate With RngHd2 On Error GoTo ParaLast While .Paragraphs.Last.Next.Style <> "Heading 1" And .Paragraphs.Last.Next.Style <> "Heading 2" .MoveEnd wdParagraph, 1 Wend ParaLast: If .Paragraphs.Count > 2 Then Set RngRef = RngHd2.Paragraphs(3).Range.Characters.Last .MoveStart wdParagraph, 3 Set RngHd3 = RngHd2 With RngRef .MoveEnd wdCharacter, -1 .InsertAfter " { " For Each oPara In RngHd3.Paragraphs If oPara.Style = "Heading 3" Then If Len(Trim(oPara.Range.Text)) > 1 Then .InsertAfter Left(oPara.Range.Text, Len(oPara.Range.Text) - 1) & ", " End If End If Next .Characters.Last.Previous.Delete .InsertAfter "}." End With End If End With .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Gray square brackets | waldux | Word | 8 | 09-25-2013 04:14 PM |
![]() |
fatso | Word | 2 | 08-04-2011 11:34 AM |
brackets citation | uncung | Word | 1 | 07-13-2011 01:39 PM |
Brackets Issue... | DarkJudge1 | Outlook | 0 | 07-06-2010 05:15 PM |
copy a file which does not have copy option | jkind | Word | 0 | 01-17-2010 09:25 AM |