Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.11.2007, 12:38
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию Заполнение таблицы документа Word.

В процессе работы программы планируется заносить данные в таблицу открытого докумета Word:

begin
MsWord := CreateOleObject('Word.Application');
MsWord.Visible := True;
MSWord.Documents.Open('C:\Documents and Settings\vladim\akt1.doc');
//MSWord.Run('mak5');
MSWord.ActiveDocument.Table1.Cells[j,2].value =: Edit1.text;

Ошибка в последней строке! Пытался этот документ выводить макросом, где эта таблица присутствует как Table(1). Вывести данные в ячейки таблицы не получается.
Как правильно записать последнюю строку фрагмента программы?
Ответить с цитированием
  #2  
Старый 05.11.2007, 15:38
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

А какая именно ошибка?

У тебя во первых должно быть не
Цитата:
MSWord.ActiveDocument.Table1.Cells[j,2].value =: Edit1.text;
а
Код:
MSWord.ActiveDocument.Table1.Cells[j,2].value := Edit1.text;
и может что-то ещё ...
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 06.11.2007, 12:46
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yurk@
А какая именно ошибка?

У тебя во первых должно быть не

а
Код:
MSWord.ActiveDocument.Table1.Cells[j,2].value := Edit1.text;
и может что-то ещё ...

Исправил =: на := , выводится сообщение - Method 'Table1' no supported by automation object ..., я перенес его с Excel, где он работает.
Написал
MSWord.ActiveDocument.Tables.Item(Table).Cell(j,2) .Range.InsertAfter(text := Edit1.Text);
по аналогии с
vWord.ActiveDocument.Tables.Item(Table).Cell(Row,C olumn). Range.InsertAfter(Text:=Value);
но тогда - сообщение:
Запрашиваемый номер семейства не существует. Process stopped ...
Что делать дальше?
Ответить с цитированием
  #4  
Старый 12.11.2007, 12:51
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Цитата:
Сообщение от cadil
...Что делать дальше?

Похоже, на этом форуме какое-то заочное соревнование: дать ответ первым после открытия темы, дальше проблема перестает всех интересовать, даже в том случае, если она не решена.
Придется нарушить традицию, самому (автору темы). После долгих поисков я нашел решение:
Вначале необходимо обратиться к таблице открытого документа Word
tbl:=WordApplication1.ActiveDocument.Tables.Item(1 );
а потом записывай (или считывай) что душа пожелает ...
Tbl.Cell(j, 2).Range.Text := Edit3.Text;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025