![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с документами WORD [D7, Win2k]
Scorpio © (2005-12-16 16:58:00)Подскажите ктонибудьЮ есть такая проблема :
Создаю шаблон в Word-е, его открываю, затем, как мне вставаить в определенном месте свою строку, а то я только нашел одну команду INSERT, но она вставляет только новую, а мне нужно в определенное место, такое возможно или нет ???
marina-n (2005-12-23 16:43:00) [1]Аналогичная проблема, но уже в Экселе. Делаю метку на первой строке моей таблицы, чтобы потом вставить вместо нее число. А вот как вставить значение на следующей строке, чтобы метку не делать, а то я замучилась (в таблице 10 строк и 3 столбца). Как бы сделать полегче?
evvcom (2005-12-23 14:52:00) [2]сделай запись макроса в ворде и посмотри текст полученного макроса
john_mag (2005-12-23 11:35:00) [3]Предлагаю следующий вариант: используй функцию GoTo_
procedure TForm1.Selection_GoTo(What,Which,Count,Name: OleVariant);
begin
if Count<>0 then WordApplication1.Selection.GoTo_(What,Which,Count,Name);
end;
Варианты:
в начало
//-----------------------------------------------------------------
Selection_GoTo(wdGoToPage,wdGoToPrevious,PageAllCount,'');
//-----------------------------------------------------------------
в нужное место
Selection_GoTo(wdGoToPage,wdGoToNext,PageAllCount,'');
для начала отправь курсор в самое начало, а затем на 30 строку те PageAllCount:= 30;
Barsky (2005-12-23 11:22:00) [4]Можно через текстовые поля
umbra (2005-12-23 10:43:00) [5]
> как мне точно опуститься на эту 30 строку
найти 29-й символ конца строки и после него вставить то, что надо
ищущий ответ (2005-12-23 10:35:00) [6]Почитай ссылочку www.kornjakov.ru/stat.htm#s6.
scorpio (2005-12-21 12:32:00) [7]ну так это позиция для по координате Х,
А мне нужно для координаты Y.
Т.е. чтобы это была строго 30 строка, а не символ.
а тело программы такое:
var xls, app, template : variant;
wd, direction, nom : OleVariant;
nomer : integer;
begin
WordApplication1.Documents.Add(EmptyParam,EmptyParam);
WordApplication1.Selection.InsertAfter('ИНФОРМАЦИОННО - АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР+#13);
WordApplication1.Selection.InsertAfter(''+#13);
WordFont1.ConnectTo(WordApplication1.Selection.Font);
WordParagraphFormat1.ConnectTo(WordApplication1.Selection.ParagraphFormat);
WordFont1.Size := 12;
WordFont1.Name := 'Arial';
WordParagraphFormat1.Alignment := wdAlignParagraphCenter;
direction := wdCollapseEnd;
WordApplication1.Selection.Collapse(direction);
WordApplication1.Selection.InsertAfter('3300-MD, '+#13);
WordApplication1.Selection.InsertAfter(#13);
WordFont1.ConnectTo(WordApplication1.Selection.Font);
WordParagraphFormat1.ConnectTo(WordApplication1.Selection.ParagraphFormat);
WordFont1.Bold := 1;
WordFont1.Size := 8;
WordFont1.Name := 'Arial';
WordParagraphFormat1.Alignment := wdAlignParagraphCenter;
WordApplication1.Selection.Collapse(direction);
WordFont1.Bold := 1;
WordFont1.Size := 8;
WordFont1.Name := 'Arial';
WordApplication1.Selection.InsertAfter('Серия В № ');
WordApplication1.Selection.Collapse(direction);
WordFont1.Bold := 1;
WordFont1.Size := 8;
WordFont1.Name := 'Courier New';
nom := '040000';
WordApplication1.Selection.InsertAfter(nom);
WordApplication1.Selection.Collapse(direction);
WordFont1.Bold := 0;
WordFont1.Size := 10;
WordFont1.Name := 'Arial';
nom := '040000';
WordApplication1.Selection.InsertAfter(' "____"_____________200__г.'+#13 );
WordApplication1.Selection.InsertAfter(#13);
WordApplication1.Selection.InsertAfter(#13);
WordApplication1.Selection.InsertAfter(#13);
WordApplication1.Selection.InsertAfter(#13);
WordApplication1.Selection.Collapse(direction);
Тут вставляется переменная с текстом, сколькот строк будет - НЕИЗВЕСТНО
Потом мне нужног строго опуститься на 30 строку и вставить данные
WordFont1.Bold := 1;
WordFont1.Size := 8;
WordFont1.Name := 'Courier New';
app := ;
WordApplication1.Selection.InsertAfter('Начальник ');
WordApplication1.Selection.Collapse(direction);
WordApplication1.PrintOut;
Close;
end;
Вот и вопрос, как мне точно опуститься на эту 30 строку ???
umbra (2005-12-21 11:32:00) [8]Здесь Word - приложение ворд, start - позиция, после которой нужно вставить текст
var
myrange: variant;
{................................}
myrange := Word.Documents[1].Range(start, start);
myrange.InsertAfter('вставленный текст');
{..........................}
myrange := unassigned;
Scorpio (2005-12-21 10:13:00) [9]Так вот меня и интересует как поместить курсор в нужное место ???
И как это сделать ч/з закладки ??
Дайте плиз пример
YurikGL (2005-12-20 21:39:00) [10]
> Сначала надо курсор установить в нужное место
Это можно сделать через закладки...
umbra (2005-12-20 18:24:00) [11]Сначала надо курсор установить в нужное место
Scorpio (2005-12-20 17:00:00) [12]Этот InsertAfter используется для вставки текста :
WordApplication1.Selection.InsertAfter('ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР'+#13);
А где здесь указать хотябы, в какую строчку вставить, а еще мне и позиция нужна, а то у меня 2 последние строки долны находиться в определенном месте, независимо от того, сколько было строк до этого.
Scorpio (2005-12-20 16:59:00) [13]Этот InsertAfter используется для вставки текста :
WordApplication1.Selection.InsertAfter('ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР'+#13);
А где здесь указать хотябы, в какую строчку вставить, а еще мне и позиция нужна, а то у меня 2 последние строки долны находиться в определенном месте, независимо от того, сколько было строк до этого.
umbra (2005-12-16 18:12:00) [14]см. метод InsertAfter в справке по VBA для Word