как на vba for ms word отформатировать таблицу?

m_evgr

задача довольно простая, наверное
дана таблица в word, 6 столбцов, в трёх последних многозначные поля. т.е. в строке три последние
ячейки могут содержать несколько абзацев (абзацы маркируются, скажем, "|"). при этом число абзацев в
последних ячейках для каждой троки своё
задача состоит в том, чтобы всю строку разбить на подстроки в пределах последних трёх ячеек. т.е.
разбивать нужно только те ячейки, где более одного абзаца (есть метка) что-то типа того:

|----|----|----|----|----|----|
| | | |----|----|----|
| | | |----|----|----|
|----|----|----|----|----|----|

какие основные объекты и методы нужно заботать для написания соответствующего кода?

m_evgr

да, при этом если изначально в последних трёх ячейках были по три абзаца текста, надо их в
соответствующем порядке запихнуть каждый в свою ячейку

6yrop

какие основные объекты и методы нужно заботать для написания соответствующего кода?
стандартный прием, проделать ручками и записать макрос

nekaya

Я правильно понимаю, что в самой примитивной формулировке тебе надо из одной ячейки с двумя абзацами текста сделать 2 ячейки, в каждой из которых будет по одному абзацу текста?

m_evgr

ага

nekaya

тогда что-то такое:
Sub test

Dim tb As Table
Dim cl As Cell

Set tb = ActiveDocument.Tables.Item(1)
Set cl = tb.Cell(Row:=1, Column:=1)
cl.Split NumRows:=2, NumColumns:=1

cl.Range.Select
Selection.StartOf Unit:=wdParagraph, Extend:=wdMove
Selection.MoveStart wdParagraph, 1
Selection.MoveEnd wdParagraph, (cl.Range.Paragraphs.Count - 2)

Selection.Cut
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.Paste

End Sub

m_evgr

круто! спасибо надо опробовать
Оставить комментарий
Имя или ник:
Комментарий: