Как совместить 2 таблицы в Word VBA? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь добавить новую таблицу в документ и добавить эту таблицу в таблицу выше, чтобы в конце была только одна таблица (другими словами, объединение 2 таблиц). Когда я делаю это с помощью приведенного ниже кода, две таблицы объединяются, но ширина отличается, несмотря на то, что две таблицы раньше имели одинаковую ширину.

Dim docSource As Document
Dim docTarget As Document
Set docTarget = ActiveDocument
Set docSource = Documents.Open(strFileName)
' Fill docTarget with the content of docSource
' Insert selected Table with selected Content
Dim myRange As Object
Set myRange = docTarget.Content
myRange.Collapse Direction:=wdCollapseEnd
myRange.FormattedText = docSource.Tables(1).Range.FormattedText
' Close docSource without saving
docSource.Close (0)
Set docSource = Nothing
Set docTarget = Nothing

Любые идеи приветствуются!

Примечание. Я пытался вставить абзац между двумя таблицами (в этом случае две таблицы получили одинаковую ширину), но я не знаю, как удалить этот код с помощью кода. Если я сделаю это вручную, 2 таблицы будут хорошо выровнены.

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы можете использовать метод .Previous диапазона последней таблицы, чтобы найти предыдущий абзац и удалить его.

ActiveDocument.StoryRanges(wdMainTextStory).Tables(ActiveDocument.StoryRanges(wdMainTextStory).Tables.Count).Range.Previous(unit:=wdParagraph).Delete
0 голосов
/ 03 апреля 2020

Благодаря «freeflow» я нашел решение, основанное на его предложении.

myRange.Tables(myRange.Tables.Count).Range.Previous(Unit:=wdParagraph).Select
Selection.Delete

Вместо непосредственного удаления я выбираю абзац, затем удаляю выделение. Когда я думаю об этом, это то, что я делаю вручную. И что любопытно, у меня больше нет проблем с выравниванием таблиц.

Мне также интересно, в чем разница между «Content» и «StoryRanges (wdMainTextStory)», но это другая история.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...