Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #16  
Old 11-01-2021, 04:26 PM
davidjm davidjm is offline how do I replace string 123-4 with 123 4 Windows 10 how do I replace string 123-4 with 123 4 Office 2016
Novice
how do I replace string 123-4 with 123 4
 
Join Date: Jun 2018
Posts: 18
davidjm is on a distinguished road
Default

Hi Andrew,


I've had a think about this and have decided to only add 2 to all page numbers and keep the format of the rollover numbers as they are (number of digits is unchanged).

I wasn't asked to fix the index and as you say Word has built-in functionality for indexing.

So using your code I have the start of 2 routines I need to run, 1st updates all page numbers that are not rollover trailing page numbers
Code:
Sub FindPattern()
  Dim aRng As Range, str As String, int1 As Integer, int2 As Integer, arrStr() As String, msg As String, x As String
  Set aRng = ActiveDocument.Range
  With aRng.Find
    .ClearFormatting
    .MatchWildcards = True
      .Text = " [0-9]{2,3}"
    Do While .Execute = True
      arrStr = Split(aRng.Text, " ")
      For i = LBound(arrStr) To UBound(arrStr)
         If IsNumeric((arrStr(i))) Then
               int1 = CInt(arrStr(i)) + 2
        End If
      Next i
' Need help here to update the index fields
'       int1 = CInt(arrStr(0)) + 2
'       int2 = CInt(arrStr(1)) + 2
'       aRng.Text = int1 & "-" & int2
'      aRng.Collapse Direction:=wdCollapseEnd
'      aRng.End = ActiveDocument.Range.End
    Loop
  End With
End Sub
Then I need to run a second routine to update all the rollover trailing page numbers and keep the same number of digits as the original

Code:
Sub FindToPage()
  Dim aRng As Range, str As String, int1 As Integer, int2 As Integer, arrStr() As String, msg As String, x As String
  Set aRng = ActiveDocument.Range
  With aRng.Find
    .ClearFormatting
    .MatchWildcards = True
    .Text = "–[0-9]{1,3}"
    Do While .Execute = True
      arrStr = Split(aRng.Text, "–")
      For i = LBound(arrStr) To UBound(arrStr)
       If IsNumeric(arrStr(i)) Then
          If CInt(arrStr(i)) > 7 And CInt(arrStr(i)) < 10 Then
             int1 = CInt(arrStr(i)) - 8
           Else
             int1 = CInt(arrStr(i)) + 2
          End If
       End If
      Next i
     Loop
  End With
End Sub
If you could just complete the above routines to update the original file, it would be very much appreciated

This index was created manually so just updating the page numbers is enough.
Thanks for your time and all your input, I've learned a great deal
Reply With Quote
 



Similar Threads
Thread Thread Starter Forum Replies Last Post
how do I replace string 123-4 with 123 4 Replace characters in a string Marcia Excel Programming 5 05-04-2020 05:15 AM
how do I replace string 123-4 with 123 4 Wildcard replace any string in context with a specified string wardw Word 7 05-07-2018 09:13 AM
how do I replace string 123-4 with 123 4 Replace multiple strings by one same string at once puff Word 2 02-28-2018 11:04 AM
how do I replace string 123-4 with 123 4 Replace characters in a string Anthon Excel Programming 1 11-03-2016 12:48 AM
How to do multiple find and replace in string. PRA007 Word VBA 2 01-06-2016 09:10 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 03:19 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft