По сути, вы храните отдельные строки на одной странице, между ними Word может свободно разбивать таблицу. Здесь - описание решения в VBA, позвольте мне скопировать ответ на случай, если ссылка когда-нибудь прекратится.(Для таблиц с вертикально объединенными ячейками существует более сложное решение, которое вы можете найти по ссылке.)
Если вам нужно сохранить всю таблицу на одной странице, отформатируйте все абзацы, кромепоследний в каждой строке с атрибутом «держать с помощью следующего».чтобы сделать это, вы можете использовать код, подобный следующему:
Dim Tbl As Table, lRow As Long, Rng As Range
With Tbl
lRow = .Rows.Count
Set Rng = ActiveDocument.Range(.Rows(1).Range.Start, .Rows(lRow - 1).Range.End)
.Rows.AllowBreakAcrossPages = False
.Rows.First.HeadingFormat = True
With .Range.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.WidowControl = True
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.WordWrap = True
End With
With Rng.ParagraphFormat
.KeepWithNext = True
.KeepTogether = True
End With
End With
Set Rng = Nothing: Set Tbl = Nothing
Строка '.Rows.First.HeadingFormat = True' гарантирует, что если таблица слишком длинная, чтобы поместиться нана всей странице заголовок появится и на последующих страницах.