Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
25.04.2024, 05:20:57

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 243 Сообщений в 5 458 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  Расположение таблиц относительно параграфов
Страниц: [1]   Вниз
Печать
Автор Тема: Расположение таблиц относительно параграфов  (Прочитано 8638 раз)
0 Пользователей и 1 Гость смотрят эту тему.
McConst
Постоялец
***

Репутация: +1/-0
Офлайн Офлайн

Сообщений: 238


Просмотр профиля E-mail
« : 25.04.2014, 11:47:22 »

Здравствуйте.
У меня в Word имеется серия однотипных таблиц. Под каждой таблицей есть параграф пояснительного текста, или хотя бы один пустой параграф, разделяющий таблицы. Как определить номер параграфа, скажем, под таблицей №3 или номер параграфа, в котором расположена таблица? Что-то в свойствах таблицы и параграфов ничего такого, что мне могло бы помочь, не нашел.
Записан
McConst
Постоялец
***

Репутация: +1/-0
Офлайн Офлайн

Сообщений: 238


Просмотр профиля E-mail
« Ответ #1 : 25.04.2014, 13:09:04 »

Частично нащупал решение вопроса.
В каждом параграфе имеется свойство tables, показывающее, принадлежат ли ему таблицы.
Доступ  типа такой objDoc.paragraphs(65).tables.count
И ещё, если, напримеру, таблица №3 начинается с конкретного параграфа, то  у них совпадают свойства Range.Start
 objDoc.paragraphs(65).Range.Start=objDoc.tables(3).Range.Start
Теперь перебором параграфов можно найти какой параграф идет после нужной таблицы (.tables.count=0)

Немного сумбурно написано, но вроде бы понятно.

Наверное, можно сделать более рационально поиск параграфа без перебора всех параграфов, но для этого нужно хорошо знать свойства и методы Word документа
Записан
McConst
Постоялец
***

Репутация: +1/-0
Офлайн Офлайн

Сообщений: 238


Просмотр профиля E-mail
« Ответ #2 : 25.04.2014, 14:40:18 »

Нашел красивое решение, как определить номер параграфа, идущего сразу после i-й таблицы Word
Код: (vb)

Dim wObj As Object
Dim objDoc As Object
Dim ParagraphNum As Long ' номер параграфа, в котором находится пояснительный текст под таблицей

'Открываем документ в приложении Word макросом Excel
On Error Resume Next
 Set wObj = GetObject(, "Word.Application")
If Err <> 0 Then
   Set wObj = CreateObject("Word.Application")
End If
Set objDoc = wObj.Documents.Open(Filename:=FullFileName, Visible:=False)

'Место в коде, где непосредственно решается проблема данной темы
ParagraphNum = objDoc.Tables(i).Range.End + 1 'Находим первый символ параграфа под таблицей
ParagraphNum = objDoc.Range(Start:=0, End:=ParagraphNum).Paragraphs.count
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru