Установка значения поля в документе

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Установка значения поля в документе

Сообщение FromTanC » 21.03.2006 (Вт) 16:01

Мне необходимо в вордовый документ передать текстовое поле.
Как мне обратится по имени к этому полю?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 21.03.2006 (Вт) 16:03

Передать откуда? Поле где? И что с ним должен делать вордовый документ?
Быть... или не быть. Вот. В чём вопрос?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.03.2006 (Вт) 16:03

Плохой вопрос.
Хороший вопрос содержал бы более подробное описание того, что надо сделать, а не как...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 21.03.2006 (Вт) 16:10

Коллекция Fields.

А вообще, я бы замечания выносил за нежелание пользоваться Object Browser ом и головой :)

FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Сообщение FromTanC » 21.03.2006 (Вт) 18:25

Мне надо из формы вставить строку в конретное место Вордового документа.
Я предполагаю, что в самом документе в этом месте надо вставить поле, а из VB как-то установить значение этого поля.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.03.2006 (Вт) 18:31

В данном случае можно использовать CustomDocumentProperties.
Lasciate ogni speranza, voi ch'entrate.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.03.2006 (Вт) 19:24

Нет, в данном случая можно использовать закладку, но да, и поле тоже можно... Только у закладок имена есть, а у полей нет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Сообщение FromTanC » 22.03.2006 (Ср) 7:12

Такой код работает (книга открывается)
Код: Выделить всё

Dim wb As excel.Workbook
Set wb = excel.Workbooks.Open(App.Path & "\Raport\Template\" & "template")

а такой:
Код: Выделить всё

Dim wd As Word.Document
Set wd = Word.Documents.Open(App.Path & "\Raport\Template\" & "Word")

Не работает.
Ошибка: ActiveX компонент не может создать объект.

Почему?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.03.2006 (Ср) 8:00

А что, объект word уже успешно создан к моменту исполнения этого кода?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Сообщение FromTanC » 22.03.2006 (Ср) 8:05

Нет, не создан.
Но Объект EXCEL тоже не создан, но тем не менее работает

FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Сообщение FromTanC » 22.03.2006 (Ср) 8:10

Разобрался, вот так работает:
Код: Выделить всё

Dim appW As Word.Application
Set appW = GetObject(, "Word.application")
If Err = 429 Then
    Set appW = New Word.Application
    Err = 0
End If


Но не понятно почему тогда в случае использования EXCEL не ругается.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.03.2006 (Ср) 8:21

FromTanC
Не надо изобретать. Если что-то работает, когда не должно, это не повод делать так всегда. Dim appW As New Word.Application. RTFM. Создание объектов относится к азам, которые нужно знать.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FromTanC
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 10.03.2006 (Пт) 10:12

Сообщение FromTanC » 22.03.2006 (Ср) 10:52

ВЫ не могли бы пояснить:
Код: Выделить всё

Dim appWord As Word.Application
Set appWord = GetObject(, "Word.application")
If Err = 429 Then
    Set appWord = New Word.Application
    Err = 0
End If
......
......
Set appWord = Nothing

После этого процесс WinWORD.EXE остается в списке процессов. Мне6 нжно после работы с документом закрыть его и убить процесс

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.03.2006 (Ср) 10:55

FromTanC
Если ты (наконец-то) потрудишься сходить в поиск по форуму, ты много там найдешь. Конкретно этот вопрос обсуждался (в который раз) очень недавно.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.03.2006 (Ср) 10:55

Перед Set appWord = Nothing делай appWord.Quit. Ну или хотя бы appWord.Visible = True.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 58

    TopList  
cron