Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

Работа с документами 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.014 c
6-1127834744
H@rdDrive
2005-09-27 19:25
2006.01.15
Как постить cookie для аутидентификации?


14-1135000952
Pazitron_Brain
2005-12-19 17:02
2006.01.15
Электронные репетиторы


8-1123323224
FUNKy
2005-08-06 14:13
2006.01.15
Определение бита


14-1134838711
Катерина
2005-12-17 19:58
2006.01.15
RichEdit


2-1135228892
Alex2
2005-12-22 08:21
2006.01.15
Динамические массивы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский