Форум: "Начинающим";
Текущий архив: 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