![]() |
|
![]() |
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
![]()
Hello everyone,
I hope this message finds you all well. I am currently working on a Word macro that aims to find and replace Arabic numbers specifically after an indent. Despite my efforts in searching through numerous forums and websites dedicated to Word macros, I have been unable to find relevant information to address my specific query. I would like to share the Word macro I got from this forum thus far, which is intended to find and replace Arabic numbers following the Chr(9) character: Code:
Sub Replace_Digits_With_Wds() Dim oRng As range Application.ScreenUpdating = False Set oRng = ActiveDocument.range With oRng.Find .ClearFormatting .Replacement.ClearFormatting .Forward = True .Wrap = wdFindStop .Format = True .MatchWildcards = True .text = Chr(9) & "1([!0-9])" While .Execute oRng.End = oRng.End - 1 oRng = Chr(9) & "-" oRng.Font.ColorIndex = wdBrightGreen oRng.Collapse wdCollapseEnd Wend Application.ScreenUpdating = True Set oRng = Nothing End With End Sub Here attached the original document and expected result document for your references: original document.docx Expected result document.docx Thank you kindly for taking the time to read my message and considering my request. I appreciate your assistance. |
#2
|
||||
|
||||
![]()
Does it matter how large the indent is?
Is this for single or multiple digits? ie 0 to 9 only or should it include numbers with more than one digit? What the number be followed by? Does it matter if the found occurrence is NOT the start of the paragraph?
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#3
|
|||
|
|||
![]() Quote:
A: .CharacterUnitFirstLineIndent = 2.03 Q: Is this for single or multiple digits? ie 0 to 9 only or should it include numbers with more than one digit? A: 0 to 9 only, and should avoid replacing years like "2024", "1987". Q: What the number be followed by? A: Mostly text/punctuation marks Q: Does it matter if the found occurrence is NOT the start of the paragraph? A: The macro is expected to find and replace all Arabic numbers after the Indentation, which is at the beginning of the paragraphs. Please view the attached documents in this thread. If you have any questions or concerns, don't hesitate to get in touch with me. Thank you. |
#4
|
|||
|
|||
![]()
Hi! Here is a simple option. I used some ideas from a Guessed's code (https://www.msofficeforums.com/179302-post6.html). You can modifiy the code to meet your needs. Maybe someone can suggest something more elegant.
Code:
Sub Repl_Digits_If() 'In the selected range, replace all single digits that start 'specifically indented paragraphs with asterisks. Dim oRng As range Dim oPar As Paragraph Dim arrText() As String Dim oDgt As range Application.ScreenUpdating = False Set oRng = selection.range arrText = Split("zero one two three four five six seven eight nine", " ") For Each oPar In oRng.Paragraphs If oPar.range.ParagraphFormat.FirstLineIndent >= 0.5 And _ oPar.range.Characters(1) Like "[0-9]*" And _ oPar.range.Characters(2) Like "[!0-9]*" Then Set oDgt = oPar.range.Characters(1) oDgt.text = arrText(oDgt.text) oDgt.Font.ColorIndex = wdBrightGreen End If Next oPar Application.ScreenUpdating = True Set oRng = Nothing End Sub |
#5
|
|||
|
|||
![]() Quote:
The issue with the provided code is that it attempts to access array elements using the value of oDgt.Text, which is a string representing a single character. However, the Split function used to populate the arrText array expects a full string as input, not just a single character. As a result, the code is not able to correctly replace the digits with their corresponding words. |
#6
|
|||
|
|||
![]()
Maybe, you will not believe, but the macro works without problems for me. I've tested it on different combinations of digits, even excluding 1 and 9. Anyway, if you know the cause of malfunction, you can remove it. Or (better) out of curiosity, I'd like to see the problem part of your file, if you don't mind.
|
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
yanyan9896 | Word VBA | 2 | 10-09-2023 04:59 AM |
Find/replace - symbol for all numbers or symbol letters (Word 97) | Genericname1111 | Word | 10 | 11-10-2019 10:37 PM |
Find and Replace Numbers Macro VBA in Microsoft Word | Yotem189 | Word VBA | 3 | 09-20-2018 05:55 AM |
Numbers format in word to arabic | Mzbarca | Word | 1 | 02-28-2016 07:56 PM |
Find and replace BETWEEN numbers | WordUser2015 | Word | 4 | 12-19-2014 02:09 PM |