![]() |
|
#1
|
|||
|
|||
![]()
Hi, Shelley Lou!
I would use a different approach: Code:
Sub FormatManualNumbering() Dim rng As range Dim rngEnd As Long Application.ScreenUpdating = False Set rng = ActiveDocument.range rngEnd = rng.End rng.Characters.First.InsertBefore Chr(13) Do With rng.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindStop .Format = True .MatchWildcards = True .text = "^13*^t" If .Execute And rng.End <= rngEnd Then .text = "[,:; ]" .Replacement.text = "." .Execute Replace:=wdReplaceAll Else: Exit Do End If If rng.Characters.Last.Previous <> "." Then rng.Characters.Last.InsertBefore "." End If rng.Collapse wdCollapseEnd End With Loop ActiveDocument.range.Characters.First.Delete Application.ScreenUpdating = True Set rng = Nothing End Sub |
#2
|
|||
|
|||
![]()
Hi Vivka, thank you so much for responding, that is definitely a better way - I've run the code on my test document. The code works for the most part but it needs to remove the very last period at the end of manual numbering levels 2 to 4 e.g. level 1 remains as 1. with a period but level 2-4 should be 1.1 / 1.1.1 / 1.1.1.1 and not 1.1. / 1.1.1. / 1.1.1.1. without the period at the very end. What can I add to the code to remove the very last period?
Before code has run Before code is run.JPG What it should look like After code has run.JPG |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
Shelley Lou | Word VBA | 1 | 03-05-2023 03:45 AM |
![]() |
Shelley Lou | Word VBA | 2 | 08-04-2021 12:24 AM |
![]() |
Shelley Lou | Word VBA | 8 | 05-28-2021 01:08 AM |
![]() |
stanley | Word | 4 | 12-15-2020 10:59 AM |
page numbering for manual | Bursal | Word | 1 | 07-29-2018 02:08 PM |