Word - excel и Vba

Программирование на Visual Basic for Applications
olik111
Обычный пользователь
Обычный пользователь
 
Сообщения: 57
Зарегистрирован: 03.07.2003 (Чт) 3:16

Word - excel и Vba

Сообщение olik111 » 03.11.2004 (Ср) 7:46

Проблема такая: Есть файл Excel из которогоданные вставляются в шаблон word? Все вставляется куда нужно, только вот в шаблоне есть например [дата] на его место должна становиться нужная дата, а слово [дата ] должно убираться, а в моем случае получается так к примеру 12.10.1999[дата], не знаю где ошибка может кто подскажет
в екселе пишу так:
'Занесём данные в шаблон договора
objWord.Selection.Find.Text = "[кому]"
objWord.Selection.Find.Execute
objWord.Selection.TypeText Text:=FIO_Vid
и т.д.
в ворде так:
With Selection.Find
.Text = "[FIO_Vid]"
.Replacement.Text = "кому"
End With
With Selection
.Find.Execute Replace:=wdReplaceOne
.Find.Execute
End With

vam911
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 04.11.2004 (Чт) 21:46

Используте поля

Сообщение vam911 » 04.11.2004 (Чт) 22:01

В водре есть такая штука, как поля. если использовать их, то работать гораздо удобнее.

Поля входят в перечень полей, ну и т.д.

Sub zapolnit_polia(objWord As Object, kod_documenta As Long, zapros_strsql As String, tip_poley As Long, docname As String)
Dim name As String
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM vstavka_poley_v_document WHERE doc_num=" + CStr(tip_poley))
name = docname
If Not rst.EOF Then

Dim rst_vekseli As Recordset
Set rst_vekseli = CurrentDb.OpenRecordset(zapros_strsql + CStr(kod_documenta))

Dim pole_name As String
Dim k As Integer
For k = 1 To objWord.Documents(name).Fields.Count

pole_name = objWord.Documents(name).Fields(k).result
rst.FindFirst "doc_pole_name='" + pole_name + "'"
If IsNull(rst_vekseli(rst!table_pole_name)) Then
objWord.Documents(name).Fields(k).result.text = ""
Else
objWord.Documents(name).Fields(k).result.text = rst_vekseli(rst!table_pole_name)
End If
Next k
End If
End Sub
vam911

Lider
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.06.2004 (Ср) 15:44
Откуда: Москва

Сообщение Lider » 05.11.2004 (Пт) 16:56

Крутовато!
Код: Выделить всё
Set rst = CurrentDb.OpenRecordset("SELECT * FROM vstavka_poley_v_document WHERE doc_num=" + CStr(tip_poley))

Непонятно: Vstavka_poley_v_document - это как бы имя таблицы к которой будет запрос .
Но эта таблица нигде не объявлена....
значит recordset будет пустым..

Я прав?

Как найти эту таблицу и писвоить ей имя ?
И вообще ...
для самых ламеров можно прокомментировать код ??? :roll: [/i]
Есть 10 тпов людей:
Одни понимают двоичную систему исчисления,
Другие нет!


Вернуться в VBA

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 97

    TopList