View Single Post
 
Old 10-18-2021, 03:26 PM
Guessed's Avatar
Guessed Guessed is offline Windows 10 Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 3,977
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

Since it is a macro it doesn't matter if it takes a few extra passes
Code:
Sub DPU_TimeFormat()
  Dim Rng As Range
  Application.ScreenUpdating = False
  Set Rng = ActiveDocument.Range
  With Rng.Find
    .MatchWildcards = True
  
    'Delete periods in a.m./p.m.
    .Text = "([0-9]) ([APap]).([mM])."    'with space between number and a/p
    .Replacement.Text = "\1\2\3"
    .Execute Replace:=wdReplaceAll
    .Text = "([0-9]) ([APap]).([mM])"
    .Replacement.Text = "\1\2\3"
    .Execute Replace:=wdReplaceAll
    
    .Text = "([0-9]) ([APap])([mM])>"     'without space between number and a/p
    .Replacement.Text = "\1\2\3"
    .Execute Replace:=wdReplaceAll
    
    .Text = "([0-9])AM>"                  'AM to am
    .Replacement.Text = "\1am"
    .Execute Replace:=wdReplaceAll
    .Text = "([0-9])PM>"                  'PM to pm
    .Replacement.Text = "\1pm"
    .Execute Replace:=wdReplaceAll

    'Change period for colon in times
    .Text = "([0-9]{1,2}).([0-9]{2})([ap])m"
    .Replacement.Text = "\1:\2\3m"
    .Execute Replace:=wdReplaceAll
  End With
  Application.ScreenUpdating = True
End Sub
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote