Written by Allen Wyatt (last updated March 5, 2021)
This tip applies to Word 2007, 2010, 2013, and 2016
When you enter a date into a document, it would be very handy for Word to automatically place a non-breaking space between the month and the day of the month. Thus, "January 22" would have a non-breaking space between the "y" and the "2". In this way, the month and day would always appear together on the same line.
Unfortunately, Word doesn't do this by default. This means that you have several different ways you can use Word's built-in tools to solve the situation.
The first possible solution is to try using Word's AutoCorrect feature. This feature is not well suited for doing this task, however. Why? Because AutoCorrect only kicks in after Word figures you are finished with a word—in other words, when you type the space after the word or some other terminating character, such as a punctuation mark. Thus, if you wanted to replace "January" with "January" followed by a non-breaking space, you would actually end up with two spaces after the word—the non-breaking space in the replacement text and the space you typed in the course of, well, typing.
This brings us to the next potential solution—Building Blocks. This solution actually can work very well, but it requires some differences in how you type dates. The best solution is to create 12 Building Blocks, each saved under the three-character name of the 12 months. Thus, the entry for "jan" would be "January" followed by a non-breaking space.
Why use three characters instead of more? Because Word has another feature called AutoComplete. If AutoComplete is turned on (and it is turned on by default), then Word tries to "guess" what you are typing and suggest the rest of the word or phrase. It does this automatically for dates, but it doesn't kick in until you type the fourth character in a month that is longer than five characters. Thus, Word suggests "January" as a completion when you type "Janu", but it won't suggest "March" as a completion when you type "Marc".
If you use three characters for your month-and-non-breaking-space combination, then you can type "Jan" and press F3, resulting in the desired combination, without extra spaces. The change in how you type, of course, is that you must remember to only type three characters and then press F3.
If you don't like to remember such changes in how to type, you can easily create a macro that will go through a document and replace any spaces following a month name with a non-breaking space. The following is very handy for this purpose:
Sub MonthsWithNonBreakingSpaces() Dim sMonth As String Dim iMonth As Integer Selection.HomeKey unit:=wdStory For iMonth = 1 To 12 With Selection.Find .ClearFormatting .Text = "(" & MonthName(iMonth, False) & ")( )([0-9])" .MatchWildcards = True With .Replacement .ClearFormatting .Text = "\1^s\3" End With .Execute Replace:=wdReplaceAll End With Next iMonth End Sub
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (11186) applies to Microsoft Word 2007, 2010, 2013, and 2016. You can find a version of this tip for the older menu interface of Word here: Automatic Non-breaking Spaces in Dates.
Learning Made Easy! Quickly teach yourself how to format, publish, and share your content using Word 2013. With Step by Step, you set the pace, building and practicing the skills you need, just when you need them! Check out Microsoft Word 2013 Step by Step today!
Want to select a chunk of text in a document? Perhaps the easiest way to do this involves using the mouse in conjunction ...
Discover MoreThere are lots of little "gotchas" that can make the difference between a finished document and a polished document. One ...
Discover MoreFor certain types of writing, you may want to make sure that the sentences in your document do not exceed a certain ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2021-03-07 15:09:33
I agree with Jen. Typing a hard space (Ctrl+Shift+SPACE) will achieve a result. Obviously it will work for situations like Monday, February 26, 2021 as well as Mon., Feb. 26, 2021.
Word does not break lines on commas nor periods!
Using building blocks, auto-correct entries, or macros does not necessarily make it more convenient, when the existing functionality is relatively simple to use. It may be a personal preference though.
I think a macro that would process the almost-finished document to make sure that all dates have non-braking spaces, would be useful. But to work with all variations of the date formats it would have to be expanded and more complicated than the one posted above.
2021-03-05 11:01:56
Malcolm
This issue is one of many that are addressed efficiently with PerfectIt, an inexpensive add-in for Word.
2021-03-05 09:24:53
Jen
Can't you use Ctrl+Shift+space between the month and day?
2017-08-09 14:51:49
Peter
Been trying for a few hours. Any way to get the month, day, and year all on the same line?
2017-05-02 03:12:25
Samntha HH
Nonbreaking space between month and date as well. Put day before month so code is actually usable for people:
Sub MonthsWithNonBreakingSpaces()
Dim sMonth As String
Dim iMonth As Integer
Selection.HomeKey unit:=wdStory
For iMonth = 1 To 12
With Selection.Find
.ClearFormatting
.Text = "([0-9])( )(" & MonthName(iMonth, False) & ")( )([0-9]{2})"
.MatchWildcards = True
With .Replacement
.ClearFormatting
.Text = "\1^s\3^s\5"
End With
.Execute Replace:=wdReplaceAll
End With
Next iMonth
End Sub
2016-12-31 09:41:17
Michael Harris
An alternative to the above macro would be one to make sure from the outset that there are no spaces in the date string where a break could occur. Below is a macro I wrote some time ago to ensure this. It inserts the date in the MS long format and then edits the inserted date to remove breaking spaces and insert the appropriate ordinal indicator. It stll works under all the latest versions of MS Word.
Although this uses tha English version of the MS long format it can easily be adapted to the american month/day/year, and added to the QAT
Public Sub InsertTheDate()
'
' Insert the Date Macro
' Macro created 17/05/00
'
If Documents.Count >= 1 Then
Dim DateType$
WordBasic.InsertField Field:="DATE @" + Chr(34) + "d MMMM yyyy" + Chr(34) + " * MERGEFORMAT"
WordBasic.WordLeft 3
WordBasic.CharRight 1, 1
WordBasic.UnlinkFields
WordBasic.CharRight 1
WordBasic.WordLeft 1
WordBasic.EditClear -1
WordBasic.Insert " "
WordBasic.WordLeft 1
WordBasic.EditClear -1
Select Case WordBasic.Day(WordBasic.Now())
Case 1, 21, 31
DateType$ = "st" + Chr(160)
Case 2, 22
DateType$ = "nd" + Chr(160)
Case 3, 23
DateType$ = "rd" + Chr(160)
Case Else
DateType$ = "th" + Chr(160)
End Select
WordBasic.Insert DateType$
WordBasic.CharLeft 3
WordBasic.CharRight 2, 1
WordBasic.Superscript
WordBasic.WordRight 3
WordBasic.Insert " "
End If
Else
MsgBox "No documents are open"
End If
End Sub
====================================
As a small bonus here is an equivalent macro for the days of the week.
Public Sub InsertDayOfTheWeek()
'Insert The Day Of The Week
' Macro created 17/05/00
'
Dim Thisday
ReDim days__$(7)
days__$(1) = "Sunday": days__$(2) = "Monday": days__$(3) = "Tuesday"
days__$(4) = "Wednesday": days__$(5) = "Thursday"
days__$(6) = "Friday": days__$(7) = "Saturday"
Thisday = WordBasic.Weekday(WordBasic.Now())
WordBasic.Insert days__$(Thisday) + " "
End Sub
Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2023 Sharon Parq Associates, Inc.
Comments