Word VBA Таблица=Ячейка другой таблицы?

Программирование на Visual Basic for Applications
Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Word VBA Таблица=Ячейка другой таблицы?

Сообщение Gogic » 03.04.2013 (Ср) 9:28

Уважаемые, у меня возник такой вопрос.

Есть таблица NxM.

Так вот, возможно ли работать с каждой ячейкой этой таблицы, как с отдельной таблицей? (Объект Table)

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Word VBA Таблица=Ячейка другой таблицы?

Сообщение Gogic » 03.04.2013 (Ср) 11:07

Ответ найден, закрывайте топ.

Код: Выделить всё
Set microRange = mTable.Cell(1, 1).Range
Set microTable = microRange.Tables.Add(Range:=microRange, NumRows:=2, NumColumns:=4)

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Word VBA Таблица=Ячейка другой таблицы?

Сообщение Gogic » 03.04.2013 (Ср) 11:51

Хотя нет, не закрывайте. Таблицу вставляет, но количество строк в ней всегда 1 (что бы не было задано).

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 03.04.2013 (Ср) 15:00

Так - работает:
Код: Выделить всё
Sub DoIt()
    Dim Tbl As Table
    Set Tbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=4, NumColumns:= _
        4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed)
   
    Tbl.Cell(2, 1).Select
    Selection.Move

    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
End Sub
Обрати внимание на вызов Selection.Move, без него вставляется таблица из одной строки.

Gogic
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 120
Зарегистрирован: 24.08.2008 (Вс) 13:19

Re: Word VBA Таблица=Ячейка другой таблицы?

Сообщение Gogic » 06.04.2013 (Сб) 19:08

Спасибо. От себя замечу, что .Move переводит в правую ячейку от текущей, .MoveLeft - сохраняет текущую ячейку, .MoveRight - переводит в правую, т.е по сути работает как .Move.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.04.2013 (Сб) 21:19

Gogic писал(а):От себя замечу, что .Move переводит в правую ячейку от текущей

Хм.. Не заметил, когда экспериментировал. А что если задать величину перемещения 0?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList  
cron