Keeping Table Rows Together as default in MS Word

I would like my table in Word (MS 365) to never page break in a row.

  1. Ideally it would be a permanent setting, but
  2. if that isn't possible, then one setting for all tables in my entire document would be nice.

I know how to do it table by table - see this SE post, where a nice answer is give here: "Keeping Table Rows Together".


Solution 1:

New Tables: Consider saving a formatted but blank table as a Quick Table

Screenshot from Insert Table menu

  1. Format a sample table, with blank contents and set the rows to not allow breaking across pages.
  2. Then save it as to the QuickTables Gallery.

Note that you can do this in the general gallery or you can save it in a particular template. Here is my writing on where Building Blocks can be stored. Give it a descriptive name. You may want to start the name with an underscore.

screenshot of dialog

Note that this is set with an underscore before both the name and the category. It will show up at the top of the alphabetical list of Quick Tables. "_Mine" category is ahead of the "General" category.

Tables Menu after creation

You can insert a Quick Table by simply typing the start of the name!

The name should be something you would not normally be typing. In this instance, when you type "_rows" you should get a prompt allowing you to insert the table. This is the standard action for AutoText and other Building Blocks. Typing the first four (unique) characters of the name gives access.

Insert by typing

You can change the formatting of the newly added table.

Once you have inserted the new table using your Quick Table, you can apply different table styles if you want and can add or delete rows/columns. You can also create multiple Quick Tables with different formatting but the non-breaking characteristic.

On a Mac

Instead of using Quick Tables, you would save your table as AutoText. Again, you want a name that is not going to show up in ordinary typing.

Existing Tables require a macro solution

The following macro will set any tables in the body of the document to not allow rows to break. Note the limitations.

Sub TableRowsNoBreak()
    ' Charles Kenyon 2021-June-7
    ' Change all tables in a document to the setting of not allowing rows to break across pages
    ' Will work on tables in body of document (not in Headers/Footers or TextBoxes) - these should not have page breaks anyway
    ' May not work on nested tables
    ' https://superuser.com/questions/1655136/keeping-table-rows-together-as-default-in-ms-word
    '
    Dim oTable As Table
    Dim oDoc As Document
    Set oDoc = ActiveDocument
    '
    For Each oTable In oDoc.Tables
        oTable.Rows.AllowBreakAcrossPages = False
    Next oTable
    Set oDoc = Nothing
    Set oTable = Nothing
End Sub

Installing Macros by Word MVP Graham Mayor

Note also, that this setting to not break may be broken in some instances by the paragraph setting of "Keep lines together" or "Keep With Next."