25.03.2019, 18:03 [+3 UTC]
в нашей команде: 3 487 чел. | участники онлайн: 8 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.73 (23.03.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
24.03.2019, 14:42

Последний вопрос:
25.03.2019, 17:22
Всего: 149085

Последний ответ:
25.03.2019, 17:50
Всего: 258030

Последняя рассылка:
25.03.2019, 15:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
09.01.2012, 13:32 »
lamed
Большое спасибо, Дмитрий Германович! С уважением. [вопрос № 185124, ответ № 269504]

РАЗДЕЛ • Basic

Создание программ на языке Basic.

[администратор рассылки: Андреенков Владимир (Академик)]

Лучшие эксперты в этом разделе

Megaloman
Статус: Академик
Рейтинг: 168
zdwork
Статус: 1-й класс
Рейтинг: 126
Sergey V. Gornostaev
Статус: Специалист
Рейтинг: 68

Перейти к консультации №:
 

Консультация онлайн # 142352
Раздел: • Basic
Автор вопроса: Салпагаров Рамазан Хаджи-Муссаевич
Отправлена: 26.08.2008, 22:06
Поступило ответов: 0

Добрый день!
Возник вопрос по генерации отчета в MS Word.

Описание стенда и задачи:
Есть шаблон, который лежит в известной директори.
Через СOM подключаем Word (2003) и создаем страницу по шаблону.
В шаблоне есть набор дескрипторов вида %descriptor%.
Используя:
Call wordDoc.Content.Find.Execute ( "%descriptor%", True, False, False, False, False, True,, False, "TEST" )

меняем все дискрипторы в шаблоне на те значения, что мне нужны.
И вроде счастье близко, но есть проблема с дескрипторами, которые находятся в таблице следующего вида:
-----------------------------------
%descr1% | %descr2% | %descr3%|
-----------------------------------
Естественно, в таблицу будет записана не одна строчка значений, а матрица.

При этом, необходимо, чтобы заказчик мог в шаблоне вытащить дескриптор из таблицы и поставить его в любое место страницы.

Как думал решить:
Найти в шаблоне дескриптор и выяснить, в таблице ли он.
Если да, то добавить строку таблицы, переместить дескриптор на строчку вниз, а в освободившуюся ячейку запихать значение.
Если нет, то просто заменить на строку данных из матрицы, перечислив значения через запятую

Чего сделал:
Dim range As Variant
Set range = ActiveDocument.Content
range.Find.Execute "%DESC%", True
range.Select
Находит и выделяет. Но тут и возникает трабл - не знаю, каким образом определить, в таблице находиться объект range, или вне ее. Думал, поможет свойства Parent, но оно честно вернуло мне объект Document в обоих случаях. Проверял

MsgBox TypeName( range.Parent )

Чего прошу: :)
Если кто знает, как реализовать задачу, просьба поделится ценным опытом.
Если есть уверенность, что это нереализуемо, также сообщите - чтобы я мог своему начальству это объяснить

С уважением, Rombs

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 142352
HookEst

# 1

= общий = | 27.08.2008, 07:58

чтоб узнать "в таблице находиться объект range, или вне ее", можно попробовать анализировать наличие свойства Cells или лучше Tables.Count:


Dim range As Variant
Set range = ActiveDocument.Content
While range.Find.Execute("%DESC%", True)
If range.Tables.Count > 0 Then
'в таблице
Else
'не в таблице
End If
Wend

неизвестный

# 2

= общий = | 27.08.2008, 12:35

Ура! Спасибо большое. Работает. smile smile smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15061 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.73 от 23.03.2019
Версия JS: 1.33 | Версия CSS: 3.35