Статьи из блога

Статьи из блога

Использование форм для ввода данных в документ

Рубрика: Макросы, Шаблоны Word
Метки: | | | |
Понедельник, 31 марта 2008 г.
Просмотров: 31166
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

Продолжаем серию заметок по теме автоматизации документов.

Сегодня я расскажу, как добавить к вашим документам специальную форму, с помощью которой можно легко и просто вводить данные в документ. Введенные в форму данные адресата по нажатию кнопки на форме будут автоматически внесены в документ.

 

Предполагается, что у вас есть готовый шаблон документа, например, письма. В качестве образца можно использовать подготовленный мною шаблон официального письма вымышленной организации.

Использование шаблона необходимо, ведь на его основе вы в дальнейшем будете создавать свои документы.

 

Распакуйте файл из архива и поместите его в папку с шаблонами редактора Word. Как правило, эта папка находится по адресу: C:\Documents and Settings\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\Шаблоны.

 

Итак, шаблон документа у нас есть, открыт и готов к изменению. В первую очередь нам необходимо добавить закладки в те позиции в документе, куда вы собираетесь вставлять данные из формы. Как правило, письмо должно содержать фамилию, имя и отчество адресата, наименование организации адресата, полный почтовый адрес и приветствие.

Исходя из этого мы добавим в документ следующие закладки:

  • name
  • company
  • address
  • date
  • salutation
Обратите внимание, реквизитов адресата, которые должно содержать письмо, на самом деле может быть много, а закладок мы определили всего пять. Это логично, так как в дальнейшем мы будем подставлять несколько реквизитов к одной закладке (например, адрес, который будет состоять из индекса, названия города, области, улицы).

После добавления закладок (и если у вас включен режим отображения меток закладок), наш документ будет выглядеть примерно как на рисунке ниже (щелкните по картинке для ее увеличения):

 

 

Эти метки закладок после нажатия кнопки "Внести данные" будут заменены на конкретные тексты.

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

 

На втором шаге мы создадим специальную форму с текстовыми полями, которая будет открываться при создании каждого нового документа на основе вашего шаблона письма. Кратко расскажу, как добавить в шаблон форму.

  • Откройте редактор Visual Basic с помощью сочетания клавиш «Alt»+«F11». Убедитесь, что в окне проектов выделен ваш шаблон:
  •  

     

  • В меню Insert выберите команду UserForm. В окне проектов будет создан новый объект Forms с пустой формой или просто добавлен в проект модуль userForm.
  • Разместите на форме необходимые элементы. Например, как на рисунке ниже:
  •  

Текстовые поля (со стандартными именами TextBox1) были мною переименованы с учетом их назначения. Обратите внимание в нижеприведенном коде, как они теперь называются.

 

Третий шаг - написание кода для элементов нашей формы.

  1. В меню Insert выберите команду Module. В окне проектов будет создан новый модуль Module1. Дважды щелкните по модулю и перейдите в окно редактирования кода. Вставьте следующий код:
  2. Sub AutoNew()
    Dim oF As MyForm
    Set oF = New MyForm
    oF.Show
    Set oF = Nothing
    End Sub

    Этот код запускает форму каждый раз при создании нового документа на основе вашего шаблона.

  3. Перейдите на модуль UserForm1. Переименуйте его в MyForm.
  4. Нажмите клавишу «F7» и в окне редактора кода вставьте следующий код (содержит процедуры для действий с элементами формы):
  5. Private Sub CommandButton1_Click()
    'Действия формы по нажатию кнопки "Ввести данные"
    Dim bm As Bookmarks
    Dim rng As Word.Range
    Dim addr As String
    Dim sText As String
    Dim sResult1 As String
    Dim sResult2 As String
    Dim arName() As String  
    Set bm = ActiveDocument.Bookmarks
    sText = Me.tbName.Text  'присваиваем переменной текст из текстового поля "Имя адресата"
    arName = Split(sText)   'создаем массив из отдельных слов, вместе составляющих ФИО адресата
    'Действия с полем "Дата"
    With Me.tbDate
       If Not IsDate(.Text) Then  'если данные введены не в формате даты, то
          MsgBox "В поле ""Дата"" неверно введены данные."   'выводим сообщение
          .Text = Format(Now, "dd MMMM yyyy") 'автоматически заполняем поле текущей датой
          .SetFocus   'фокус на поле "Дата"
          .SelStart = 0  '
          .SelLength = Len(.Text) 'выделяем весь текст в поле, начиная с левого края
          Exit Sub
       Else
          Set rng = bm("date").Range 'присваиваем переменной rng ссылку на закладку "date"
          rng.Text = .Text & " г."   'определяем новый текст закладки
          bm.Add "date", rng   'заменяем закладку
       End If
    End With
    Set rng = bm("name").Range 'присваиваем переменной rng ссылку на закладку "name"
    sResult1 = arName(0) & " " 'присваиваем переменной значение первого слова из поля "Имя адресата" и добавляем пробел
    sResult1 = sResult1 & Left(arName(1), 1) & ". " 'добавляем к первому слову первую букву Имени и точку
    sResult1 = sResult1 & Left(arName(2), 1) & "."  'добавляем первую букву Отчества и точку
    rng.Text = sResult1  'определяем новый текст закладки
    bm.Add "name", rng   'заменяем закладку
    Set rng = bm("company").Range 'присваиваем переменной rng ссылку на закладку "company"
    rng.Text = Me.tbCompany  'определяем новый текст закладки
    bm.Add "company", rng   'заменяем закладку
    If Len(sText) > 0 Then  'если в поле "Имя адресата" есть какие-то символы, то
        sText = sResult1 & vbCr   'присваиваем переменной текст закладки "name" и переводим строку
    End If
    If Len(Me.tbCompany.Text) > 0 Then  'если в поле "Организация" есть какие-то символы, то
       Me.tbCompany.Text = Me.tbCompany.Text & vbCr   'присваиваем переменной текст из поля и переводим строку
    End If
    If Len(Me.tbAddress.Text) > 0 Then  'если в поле "Адрес" есть какие-то символы, то
       Me.tbAddress.Text = Me.tbAddress.Text   'присваиваем переменной текст из поля
    End If
    If Len(Me.tbIndex.Text) > 0 Then 'если в поле "Индекс" есть какие-то символы, то
       Me.tbIndex.Text = Me.tbIndex.Text & ","    'присваиваем переменной текст из поля и добавляем запятую
    End If
    If Len(Me.tbCity.Text) > 0 Then  'если в поле "Город" есть какие-то символы, то
       Me.tbCity.Text = Me.tbCity.Text & "," 'присваиваем переменной текст из поля и добавляем запятую
    End If
    If Len(Me.tbOblast.Text) > 0 Then   'если в поле "Область" есть какие-то символы, то
       Me.tbOblast.Text = Me.tbOblast.Text & "," 'присваиваем переменной текст из поля и добавляем запятую
    End If
    'присваиваем переменной фрагментов текста из полей "Индекс", "Город", "Область" и "Адрес"
    addr = Me.tbIndex.Text & " " & Me.tbCity.Text & " " & Me.tbOblast.Text & " " & Me.tbAddress.Text
    Set rng = bm("address").Range 'присваиваем переменной rng ссылку на закладку "address"
    rng.Text = addr   'определяем новый текст закладки из переменной addr
    bm.Add "address", rng   'заменяем закладку
    Set rng = bm("salutation").Range 'присваиваем переменной rng ссылку на закладку "salutation"
    rng.Text = Me.tbSalutation.Text  'определяем новый текст закладки
    bm.Add "salutation", rng   'заменяем закладку
    Unload Me   'Закрываем форму
    ActiveDocument.Range.Fields.Update  'Обновляем все поля в документе
    End Sub

     

  6. Ниже этого кода вставьте следующий код:
  7. Private Sub CommandButton2_Click()
    'Выход из формы и закрытие окна документа при нажатии кнопки "Отменить"
    On Error GoTo ErrLabel
    Unload Me    'Закрываем форму
    ActiveDocument.Close  'Закрываем текущий документ
    ErrLabel:
    End Sub
    Private Sub tbIndex_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'Устанавливаем правила заполнения поля "Индекс"
    With Me.tbIndex
       If Not IsNumeric(.Text) Or Len(.Text) <> 6 Then 'если в поле "Индекс" данные не цифры и меньше 6, то
          MsgBox "Ошибка!" & " " & "Введите 6 цифр индекса города или района." 'выводим сообщение
          Cancel = True  'возвращаемся к полю
          .Text = ""  'очищаем поле
          .SetFocus
       End If
    End With
    End Sub
    Private Sub tbName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'При выходе из поля "Имя адресата" его имя подставляется в поле "Приветствие"
    sText = Me.tbName.Text
    arName = Split(sText)
    sResult2 = arName(1) & " "
    sResult2 = sResult2 & arName(2)
    Me.tbSalutation = "Уважаемый " & sResult2 & "!"
    End Sub
    Private Sub UserForm_Initialize()
    Me.tbDate = Format(Now, "dd MMMM yyyy")
    With Me.tbName
       .Text = "Фамилия Имя Отчество"
       .SetFocus
       .SelStart = 0
       .SelLength = Len(.Text)
    End With
    End Sub
  8. Сохраните проект и попробуйте создать на основе вашего шаблона новый документ. Введите необходимые данные в поля формы и нажмите кнопку "Внести данные".

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

В этом шаблоне есть небольшой недостаток: в текстовые поля нужно вводить информацию в правильном формате и регистре, иначе в итоговом письме придется вручную править недочеты.

 

Образцом для шапки шаблона послужила картинка из шаблона городского письма редактора Word 2007.

Образцом кода для данного макроса и формы послужила заметка Gregory Maxey Address a Letter Using as UserForm.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 52

  1. Трушкин Михаил
    26.07.2008 в 23:41 | #1

    Интересное описание. Но стоит усложнить немного задачу, как перестаёт работать. Вот у меня, например, задача стояла следующим образом. Есть типовой контракт, в котором меняются только поля "Наименование организации", "Наименование должности руководителя", "ФИО руководителя" и т.п.. Но есть одна особенность. Некоторые значения повторяются по тексту раз по 5. Если попытаться вставлять закладки, то они получаются уникальными. То есть продублировать содержимое закладки по тексту не получается. Может, я как-то не так закладки добавляю? У меня Word 2003. Выбираю "Вставка - Закладка". Ввожу указатель закладки и выбираю "Добавить". Далее набираю неизменяемый текст. Потом мне нужно снова вставить содержимое той же закладки. Повторяю операцию. Но маркер закладки исчезает из прежней позиции и устанавливается в новое место. Без вариантов. Может, кто подскажет, как содержимое закладки продублировать?

  2. 27.07.2008 в 06:39 | #2

    Это мое упущение в объяснении.

    Михаил, добавляя новую закладку с тем же именем, вы тем самым удаляете предыдущую - заменяете ее. Зачем?

    Вам нужно в документе вставлять ссылочное поле REF, а не добавлять новую закладку. Почитайте пожалуйста вот эту заметку: Ввод часто повторяющихся фрагментов текста.

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

  3. 28.07.2008 в 23:44 | #3

    Ссылочное поле REF это ничто иное как перекрестная ссылка. При ее вставке просто нужно выбрать тип объекта, на который ссылаетесь (абзац, закладка, таблица, рисунок и т.п.)

    Затем обновление производится через F9

  4. Денис
    26.08.2008 в 12:47 | #4

    Какой надо код написать, что бы при нажатии кнопки "ввести данные" вводился просто текст из закладок в документ? (( Закладок штук 20..

  5. 27.08.2008 в 08:59 | #5

    Денис, конкретнее можете сформулировать задание?

  6. Александр
    10.10.2008 в 10:40 | #6

    Вопрос по теме.. У меня есть документ с неизменяемым текстом и полями для ввода. Как делать так, что бы можно было редактировать весь текст? Как убрать это свойство "неизменяемости".. Спасибо..

  7. 10.10.2008 в 11:02 | #7

    Снимите защиту с документа (Сервис - Снять защиту).

  8. Вячеслав
    10.10.2008 в 22:04 | #8

    Добрый день! Подскажите, можно ли в документе Word вставить поле календарь? Примерно такого плана как в обработках 1С при выборе периода.

    Заранее спасибо.

  9. 11.10.2008 в 06:56 | #9

    Вот заметка на эту тему: Календарь Word

  10. 11.10.2008 в 15:06 | #10

    Вот заметка на эту тему: Календарь Word

    Антон, по-моему будет удобнее использовать стандартный компонент Microsoft Date and Time Picker Control 6.0

  11. Слава Белый
    23.10.2008 в 13:25 | #11

    Добрый день! Спасибо за статью, лично мне она очень пригодилась. Единственная проблема: не могу найти, где включается отображение МЕТОК закладок, чтобы в документе рядом с символом закладки отображалось ее название. Подскажите, пожалуйста, где включается сия опция в Word 2003? Заранее благодарю за ответ.

  12. 23.10.2008 в 15:31 | #12

    Слава, меню Сервис - Параметры - опция Показывать Закладки (установите флажок). Это будут показаны метки. Но имена закладок вы так отобразить не сможете и это не предусмотрено. Но...

    Завтра я опубликую заметку с описанием шаблона для работы с закладками. И благодаря этому шаблону можно будет легко видеть имеющиеся в документе имена закладок и быстро переходить к ним.

  13. intersk
    28.10.2008 в 14:37 | #13

    Поставил в шаблоне документа цвет закладок с подказочным словом {дата}, (номер)... серым цветом (чтобы меньше бросались в глаза). Какой код прописать чтобы после ввода значения из формы цвет шрифта текста в закладке становился черным?

  14. 28.10.2008 в 18:33 | #14

    Вот примерный макрос для всех закладок в документе:

    Sub fontBlack()
    Dim bm As Bookmark
    For Each bm In ActiveDocument.Bookmarks
       bm.Range.Font.ColorIndex = wdBlack
    Next bm
    End Sub

  15. intersk
    29.10.2008 в 11:29 | #15

    Иногда нужно обратить внимание пользователя на то, какую дату он ставит - текущую или нетекущую - например путем MsgBox. Я использую для вставки даты в поле закладки элемент формы DTPicker (там по моему не всегда стоит текущая дата по умолчанию). Когда дата текущая/нетекущая должна быть форма с вопросом "Вы уверены что ставите текущую/нетекущую дату", две копки если кнопка "Да" продолжется выполнение макроса, если кнопка "Нет" - возврат в форму.

  16. 30.10.2008 в 01:15 | #16

    Иногда нужно обратить внимание пользователя на то, какую дату он ставит....

    Тип даты указывается в настройках контрола.

    Компонент для выбора даты (смотреть скриншот).

  17. intersk
    30.10.2008 в 10:34 | #17

    вот именно, она там установлена любая и не меняется сама на текущую. А как проверить присвоение переменной(закладке) текущей/не текущей даты?

  18. Андрей
    09.11.2008 в 23:58 | #18

    Антон подскажите пожалуйста как связать шаблон с базой данных

    1 - можно вместо закладок использовать поля слияния или поле-списки

    2 - как из базы данных передать все значения в поля-списки

  19. 13.11.2008 в 17:40 | #19

    вот именно, она там установлена любая и не меняется сама на текущую. А как проверить присвоение переменной(закладке) текущей/не текущей даты?
    If dtpicker.ValueToday() then
    …
    End If

  20. 13.11.2008 в 17:41 | #20

    Пропустил знак = ;)

  21. Ден
    03.01.2009 в 20:23 | #21

    А у меня проблема со ссылками. WORD почему-то считает необходимым, подставив в ссылку соответствующее ей значение, перебросить всё, что было непосредственно за ссылкой, на следующую строку! Как избавиться от этой самодеятельности?

  22. 03.01.2009 в 20:27 | #22

    Так может быть у вас после поля (или в конце поля) стоит знак абзаца? Проверьте.

  23. Ден
    04.01.2009 в 11:56 | #23

    В том-то и дело! Знак абзаца удаляю, а после обновления документа он снова появляется.

  24. Ден
    04.01.2009 в 11:58 | #24

    Я думал это болезнь Word 2007. Скачал Word 2003 - абсолютно то же самое вытворяет.

  25. Ден
    04.01.2009 в 12:03 | #25

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

  26. Ден
    04.01.2009 в 12:18 | #26

    Прошу прощения! Я только сейчас понял. Знак абзаца стоял в конце поля закладки. А я удалял его в конце ссылки. Ступор! Спасибо!

  27. Сергей
    03.04.2009 в 15:01 | #27

    Хорошая статья, только в форму надо вносить данные не только текстовые а еще графические, но таких полей в форме ненашел.

    Подскажите как в форму вставлять рисунки?

  28. 03.04.2009 в 18:37 | #28

    …Подскажите как в форму вставлять рисунки?

    Есть компонент Image, ImageComboBox и много других для работы с изображениями. Вызовите контекстное меню на панели с компонентами и выберите «Additional Controls»

  29. 08.04.2009 в 14:23 | #29

    Антон, а как вывести форму рядом с выделенным текстом? Как это, например, делается при поиске: если что-то найдено, то окно поиска располагается так, чтобы не заслонять найденный текст.

  30. 08.04.2009 в 15:44 | #30

    Александр, честно скажу: не знаю. Можно попробовать установить свойство окна открываться либо по центру, либо по краям экрана. А вот около выделенного текста - затрудняюсь подсказать. Наверное, надо задавать условия для выделенного текста. А где в этом шаблоне выделенный текст?

  31. 09.04.2009 в 12:22 | #31

    Антон, есть решение. Подсказал MVP с Google Groups.

    Есть оказывается метод ActiveWindow.GetPoint, который возвращает положение в пикселах выделенного диапазона или фигуры на экране. А также его высоту и ширину.

  32. 09.04.2009 в 13:41 | #32

    Отлично! Я было хотел задать ваш вопрос в этот форум, но вы написали, что сами задали (ваш комментарий я удалил, так как он был нечитаем - вопросики вместо букв).

  33. Наталья
    23.11.2009 в 20:22 | #33

    вылезла ошибка..не получается..

    Private Sub UserForm_Initialize()
    Me.tbDate = Format(Now, "dd MMMM yyyy")
    With Me.tbName
       .Text = "Фамилия Имя Отчество"
       .SetFocus
       .SelStart = 0
       .SelLength = Len(.Text)
    End With
    End Sub

    желтым выделяет первую строчку

    и ещё,не подскажете?где у вас на сайте можно ознакомится с 2007 вордом,точнее его интерфейсом...после 2003 сложно ориентироваться,ничего не могу найти

  34. 23.11.2009 в 21:07 | #34

    Наталья, какую именно ошибку выдает?

    Что касается интерфейса новой версии редактора, то он же у вас установлен? Почитайте тогда вот эту заметку: http://wordexpert.ru/page/raspolozhenie-komand-word-2003-v-word-2007 и вот эту заметку: http://wordexpert.ru/page/interaktivnyiy-putevoditel-po-komandam-word-2007.

  35. Наталья
    02.12.2009 в 07:20 | #35

    Очень приятно, что так быстро отвечаете!Спасибо за ссылки...

    А теперь наверное точно не по теме будет вопрос...

    С ошибкой позже разберусь ...

    У меня есть четыре шаблона.сделанные с полями форм,т.е. шаблон защищен,а данные вводятся только в поля форм.

    Можно ли связать эти 4 шаблона,чтобы одинаковые поля форм заполнялись сразу при открытии только одного шаблона,т.е. при создании сначало одного документа...

    надеюсь доходчиво объяснила...

    отправте меня пожалуйста,если есть статьи по моему вопросу..

  36. 11.01.2010 в 18:41 | #36

    Можно попытаться добавлять данные в другие документы, но если они открыты. В закрытые документы данные не добавить.

  37. Елена
    13.01.2010 в 23:19 | #37

    Как создавать форму ввода данных понятно. Там есть вставка поля со списком. Вот как наполнить сам список нужными элементами не разобралась.

  38. 28.01.2010 в 21:53 | #38

    А можно провернуть нечто подобное, но с элементами управления содержимым? Т.е. чтобы этот вводимый текст в конечном документе был не просто текстом.

  39. OASISBY
    16.03.2010 в 11:44 | #39

    А как при запуске макроса, прочитать содержимое закладок и занести их значения в поля формы? Грубо говоря редактировать введенные данные например при ошибке.

  40. Oasisby
    18.03.2010 в 14:58 | #40

    Ну как всегда, сам вопрос задашь и сам отвечай).

    вот код занесения в форму содержимого поля при открытии формы, переменные нужно заменить на свои:

    Private Sub UserForm_Initialize()
    Dim bm As Bookmarks
    Dim rng As Word.Range
    Dim FIOGm() As String
    Dim tem As String
    Set bm = ActiveDocument.Bookmarks
                    'Для поля с массивом слов
    Set rng = bm("fGIP").Range  
    FIOGm = Split(rng)  
    Me.FIOG02.Text = FIOGm(2)  
    Me.FIOG03.Text = Left(FIOGm(0), 1)  
    Me.FIOG04.Text = Left(FIOGm(1), 1)  
                    'Для обычного текстового поля
    Set rng = bm("OBZ").Range  
    tem = rng
    Me.nomer01.Text = tem
    End Sub

  41. андрей
    23.08.2010 в 21:35 | #41

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

  42. 24.08.2010 в 09:28 | #42

    Андрей, мне представляется что вам нужно создать шаблоны документов с нужными вам формами (не документы-образцы, а именно шаблоны), с помощью которых вы и будете создавать ваши документы.

    Тогда при создании документа на основе подходящего в данный момент шаблона у вас будет открываться нужная вам форма.

    P.S. Эта форма заранее создается в шаблоне.

    Собственно говоря, статья выше как раз и предназначена для вашей задачи.

  43. андрей
    25.08.2010 в 17:10 | #43

    спасибо за ответ!у меня ещё вопрос! в моём шаблоне есть вводимая дата, она не текущая, и ещё несколько закладок с датами, которые зависят от неё, то есть одна на два дня больше, вторая на десять,как сделать, чтобы они устанавливались автоматически после ввода первой даты.

  44. 25.08.2010 в 22:34 | #44

    В принципе, если не боитесь залезть в дебри работы с полями, это возможно. Посмотрите пример DateCalc на этой странице

    Посмотрите как там всё сделано и попробуйте реализовать сами. У меня получалось.

  45. андрей
    27.08.2010 в 22:31 | #45

    Dim nn As Date      
    nn = Me.TextBox1
          Set rng = bm("вв").Range 
          rng.Text = (nn + 2)    
          bm.Add "вв", rng

    вроде получилось,работает!

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

  46. Алан
    05.10.2011 в 15:59 | #46

    !Спасибо очень помогло, только есть еще вопрос,

    что если нужно выбрать один из двух пунктов и в зависимости от выбора добовлять (или удалять) разные варианты текста (в данном случае пункты договора)?

  47. Vadim
    26.11.2011 в 18:51 | #47

    как мне написать код в кнопке "Отмена" для vb.net 2008

    Тоесть я выбераю Поиск,и мне нужно выйти потом с него.

  48. Аноним
    23.10.2013 в 10:34 | #48

    Подскажите пожалуйста, как мне связать мою форму с вставленной в документ таблицей Excell? В форме вводится задаток, в таблице просчитывается итоговая сумма, мне нужно чтобы закладке присваивался остаток - итоговая сумма минус задаток. Спасибо.

  49. Александр
    23.10.2013 в 12:40 | #49

    Слишком сложно было мне помочь?

  50. Юлия
    24.10.2013 в 11:38 | #50

    Если отбросить тот факт, что сам бланк документа вместе с реквизитами оформлен абсолютно неправильно, то... Ну да, все остальное м.б полезным. )))

  51. Елена Ц
    15.10.2014 в 22:01 | #51

    Здравствуйте!

    Подскажите, пожалуйста, что можно сделать? :у меня есть документ в котором, данные из закладки попадают в разные части документа, с помощью ссылочного поля ref, и все бы хорошо, но для некоторых полей применяется корректировка (например удаляю последнее слово). При редактировании уже готового файла на основе шаблона все хорошо редактируется, но стоит выдать на печать, как эти данные "преображаются" в первоначальный вид, и на бумаге выходит "не так как надо".

  52. Андрей
    19.12.2015 в 11:49 | #52

    Не могу понять, как сделать:

    Есть очень много документов WORD, для одного документа сделана форма для ввода данных в ссылки документа. Скопировать и вставить эту форму в другие документы и сделать ссылки в документе не проблема. Но при изменении или данных или вида форм надо будет править предположим 100 форм. Как сделать одну форму, чтобы она открывалась только из этих 100 документов. Спасибо!

Оставьте комментарий!

(обязательно)

^ Наверх