Я помещаю таблицы в документ Word.Количество строк в таблице может варьироваться, но высота строк фиксирована, поэтому я знаю максимальное количество строк, которое может поместиться на одной странице.Когда я достигну этого максимального числа, я хочу добавить новую страницу в документ, а затем вставить в него новую таблицу.Звучит просто, но я сталкиваюсь со всевозможными странными результатами.Результат № 1: я попытался использовать и «Selection.InsertNewPage» и «Selection.InsertBreak (wdPageBreak)».Когда я делаю это, добавляются 2 страницы вместо 1.
NumberOfPages = SectionObject.Range.Information(wdNumberOfPagesInDocument)
TableLocation = TableObject.Range 'get the range object of the current table
TableLocation.Collapse(WdCollapseDirection.wdCollapseEnd) 'go to end of table
TableLocation.Select()
WordDocument.Application.Selection.InsertBreak(WdBreakType.wdPageBreak) 'adds 2 pages instead of 1
NumberOfPagesNew = SectionObject.Range.Information(wdNumberOfPagesInDocument)
Чтобы попытаться сделать это, я написал этот код (он не работает)
If NumberOfPagesNew > NumberOfPages + 1 Then
TableLocation = WordDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, NumberOfPagesNew) 'go to last page of doc
TableLocation.Delete() 'delete that page
TableLocation = WordDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, NumberOfPagesNew - 1) 'go to new last page
TableLocation.Collapse(WdCollapseDirection.wdCollapseStart) 'move cursor to start of page
End If
'I add a new table using this code
TableObject = WordDocument.Tables.Add(TableLocation, NumberOfRowsNeeded - 1, 5)
Но вместо этогоразмещения моей таблицы на последней странице, добавляется еще одна страница, и моя таблица помещается на нее.Конечным результатом является страница с таблицей, пустая страница, а затем еще одна страница с таблицей.
Результат № 2: Еще одна вещь, которую я попробовал, - переместить курсор в конец таблицы, добавив строкуперерыв и затем размещение моего стола после этого.Это обошло мою проблему добавления 2 страниц вместо 1. Однако, это добавляет 2 строки на новую страницу вместо 1, что отбрасывает мой код подсчета строк.Ниже приведен код, который я использовал.
TableLocation = TableObject.Range 'get range object of current table
TableLocation.Collapse(wdCollapseEnd) 'go to end of table
TableLocation.Select()
WordDocument.Application.Selection.InsertBreak(wdLineBreak) 'should add 1 line
TableLocation = WordDocument.Application.Selection.GoToNext(wdGoToLine)
TableLocation.Collapse(WdCollapseDirection.wdCollapseStart)
'I add my next table using this code.
TableObject = WordDocument.Tables.Add(TableLocation, NumberOfRowsNeeded - 1, 5)
Этот код помещает мою таблицу на одну строку ниже, чем следовало бы.
Я мало занимаюсь кодированием Word и очень мало знаю о тонкостях объекта выбора, поэтому я уверен, что именно в этом заключается моя проблема.Если бы кто-то мог показать мне хороший способ выполнить то, что я хочу сделать, я был бы признателен.
Заранее спасибо,
Даррен