Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Работа с документами WORD   Найти похожие ветки 

 
Scorpio ©   (2005-12-16 16:58) [0]

Подскажите ктонибудьЮ есть такая проблема :
Создаю шаблон в Word-е, его открываю, затем, как мне вставаить в определенном месте свою строку, а то я только нашел одну команду INSERT, но она вставляет только новую, а мне нужно в определенное место, такое возможно или нет ???


 
umbra ©   (2005-12-16 18:12) [1]

см. метод InsertAfter в справке по VBA для Word


 
Scorpio ©   (2005-12-20 16:59) [2]

Этот InsertAfter используется для вставки текста :

WordApplication1.Selection.InsertAfter("ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР"+#13);

А где здесь указать хотябы, в какую строчку вставить, а еще мне и позиция нужна, а то у меня 2 последние строки долны находиться в определенном месте, независимо от того, сколько было строк до этого.


 
Scorpio ©   (2005-12-20 17:00) [3]

Этот InsertAfter используется для вставки текста :

WordApplication1.Selection.InsertAfter("ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР"+#13);

А где здесь указать хотябы, в какую строчку вставить, а еще мне и позиция нужна, а то у меня 2 последние строки долны находиться в определенном месте, независимо от того, сколько было строк до этого.


 
umbra ©   (2005-12-20 18:24) [4]

Сначала надо курсор установить в нужное место


 
YurikGL ©   (2005-12-20 21:39) [5]


> Сначала надо курсор установить в нужное место

Это можно сделать через закладки...


 
Scorpio ©   (2005-12-21 10:13) [6]

Так вот меня и интересует как поместить курсор в нужное место ???
И как это сделать ч/з закладки ??
Дайте плиз пример


 
umbra ©   (2005-12-21 11:32) [7]

Здесь Word - приложение ворд, start - позиция, после которой нужно вставить текст

var
 myrange: variant;
{................................}

 myrange := Word.Documents[1].Range(start, start);
 myrange.InsertAfter("вставленный текст");
{..........................}
 myrange := unassigned;


 
scorpio ©   (2005-12-21 12:32) [8]

ну так это позиция для по координате Х,
А мне нужно для координаты 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 строку ???


 
ищущий ответ   (2005-12-23 10:35) [9]

Почитай ссылочку www.kornjakov.ru/stat.htm#s6.


 
umbra ©   (2005-12-23 10:43) [10]


> как мне точно опуститься на эту 30 строку

найти 29-й символ конца строки и после него вставить то, что надо


 
Barsky ©   (2005-12-23 11:22) [11]

Можно через текстовые поля


 
john_mag ©   (2005-12-23 11:35) [12]

Предлагаю следующий вариант: используй функцию 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;


 
evvcom ©   (2005-12-23 14:52) [13]

сделай запись макроса в ворде и посмотри текст полученного макроса


 
marina-n   (2005-12-23 16:43) [14]

Аналогичная проблема, но уже в Экселе. Делаю метку на первой строке моей таблицы, чтобы потом вставить вместо нее число. А вот как вставить значение на следующей строке, чтобы метку не делать, а то я замучилась (в таблице 10 строк и 3 столбца). Как бы сделать полегче?



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
6-1128346174
kay
2005-10-03 17:29
2006.01.15
Как сделать, чтобы при использовании InternetConnect и прочих...


2-1135336738
oleg777
2005-12-23 14:18
2006.01.15
не работает запрос к sysusers


14-1134973829
Интересно мне
2005-12-19 09:30
2006.01.15
День добрый!


1-1134025349
cyborg
2005-12-08 10:02
2006.01.15
Обращение к переменным в потоках


10-1111149870
dewersia
2005-03-18 15:44
2006.01.15
помогите с com+