
Tips.Net > WordTips Home > Macros > VBA Examples > Bumping Numbers in a Document
Summary: If your documents include words that contain numbers (such as a list of parts numbers) you may need a way to increment those numbers. Here’s a way you can do it quickly using a macro. (This tip works with Microsoft Word 97, Word 2000, Word 2002, Word 2003, and Word 2007.)
Documents often contain many words that are purposefully very similar to each other. For instance, you may have a document that references a series of part numbers, and the part numbers are all very similar to each other. Or you may reference a group of file names in which the base portion of the name is the same word, but each file name has a suffix that is a number, such as the following:
Disc01 Disc02 Disc03 Disc04 Disc05
If you ever have a need to increment the numbers within your document, the process can be very tedious and error-prone to do by hand. (Depending, of course, on the number of names you need to change.) This means that the task is a perfect candidate for being done by a macro.
As an example, the following VBA macro, BumpNumbers, will search for all instances of the word Disc followed immediately by a two-digit number. The number will then be incremented.
Sub BumpNumbers()
Dim J As Integer
Dim sFindText As String
Dim sReplaceText As String
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
For J = 98 To 1 Step -1
sFindText = "Disc" & Right("00" & Trim(CStr(J)), 2)
sReplaceText = "Disc" & Right("00" & Trim(CStr(J + 1)), 2)
Selection.Find.Text = sFindText
Selection.Find.Replacement.Text = sReplaceText
Selection.Find.Execute Replace:=wdReplaceAll
Next J
End Sub
Obviously, this macro is tailored to a specific need—the word Disc followed by a two-digit number. If you need to modify the macro to fit your numbering needs, you can do so by changing the For ... Next loop (so it doesn't go from 98 to 1) or by changing the text being searched for (which is assigned to the sFindText variable).
Tip #814 applies to Microsoft Word versions: 97 2000 2002 2003 2007
Take Control! Master the real power behind Word! Successfully master the secrets of powerful formatting and create documents that stand out from the rest. Best of all, you can create documents that are easy to maintain and quick to change.
Check out Word 2007 Styles and Templates today!
It doesn't matter if you are a beginner or expert, the WordTips archives are the fastest way to improved productivity. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Bugs and Pests Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pet Tips
Word2007 Tips
WordTips