Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2009, 10:14   #1
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию Шаблон word и закладки

Доброго времени суток!

У меня есть шаблон ворд, который автоматически заполняется данными из excel - в шаблоне места вставки помечены закладками. Но есть проблема - при вставке непосредственно в закладку, закладка удаляется.
И если мне потребуется обновить данные в документе, то макрос не поймет куда их вставить (закладок то больше нет). Пока что юзаю InsertAfter, но при таком варианте новый текст вставляется, но тот что уже был остается.

Что можете посоветовать, как решить проблему?
hackPNZ вне форума Ответить с цитированием
Старый 15.10.2009, 10:47   #2
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

Напиши часть кода, как ты вставляешь в закладку.
БуреВестник вне форума Ответить с цитированием
Старый 15.10.2009, 10:54   #3
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

Вот так я делаю

Код:
    'text to find
    fnd = Array("dog_num", "dog_valobj", "dog_pass", "dog_pass1", _
                "dog_fio", "dog_fio1", "dog_cost", "dog_cost1")
                
    'text to replace
    repl = Array(Range("B5"), Range("B15"), Range("B10"), Range("B10"), _
                 Range("B11"), Range("B11"), Range("B25"), Range("B25"))
    
    Set wrd = CreateObject("Word.Application")
    st = ThisWorkbook.Path & "\Договор.dot"
    toSave = ThisWorkbook.Path & "\Договор " & Range("B11") + " " & Range("B5") & ".doc"

    With wrd
            .Documents.Add(st).Activate
            .Visible = True
      
    'text
    For i = LBound(fnd) To UBound(fnd) Step 1
        .ActiveDocument.Bookmarks(fnd(i)).Select
        .Selection.InsertAfter repl(i)
    Next i
     
    .ActiveDocument.SaveAs toSave
    .Quit
        
    End With

    Set wrd = Nothing
hackPNZ вне форума Ответить с цитированием
Старый 15.10.2009, 11:06   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Ты неправильно изменяешь закладку. Здесь я писал, как ее нужно изменять
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 15.10.2009, 11:10   #5
БуреВестник
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 69
По умолчанию

А закладки у тебя в Word вот такого типа [ ]?
Если так, то получается, что вот эта часть кода
Код:
.ActiveDocument.Bookmarks(fnd(i)).Select
выделяет вот это [ ] и в выделенное вставляет. Чтобы этого не было, надо сделать смещение на один знак вправо (чтобы снять выделение), а затем на один знак налево (чтобы войти в [ ]).
Код этих движений можете сами записать, использую макрорекордер и клавиши на клавиатуре со стрелками, а затем полученный код добавьте после этой строчки:
Код:
.ActiveDocument.Bookmarks(fnd(i)).Select
БуреВестник вне форума Ответить с цитированием
Старый 15.10.2009, 14:08   #6
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

Спасибо большое за ваши ответы))) В целом идея понятна, буду творить)))
hackPNZ вне форума Ответить с цитированием
Старый 15.10.2009, 14:30   #7
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

А не подскажете как мне удалить содержимое закладки(если там есть что, текстовая строка) и вставить новое?
hackPNZ вне форума Ответить с цитированием
Старый 15.10.2009, 16:23   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Если ты ходил по ссылке, которую я дал, то проблем не должно быть, просто задай пустую строку и содержимое будет удалено
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 15.10.2009, 17:25   #9
hackPNZ
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 29
По умолчанию

@viter.alex Посмотрел повнимательнее твой код и все получилось, вроде как))) Сейчас тестирую. Еще раз спасибо)))
hackPNZ вне форума Ответить с цитированием
Старый 26.03.2010, 09:06   #10
novak_26
Пользователь
 
Аватар для novak_26
 
Регистрация: 23.02.2010
Сообщений: 39
По умолчанию

Цитата:
Сообщение от hackPNZ Посмотреть сообщение
Доброго времени суток!

У меня есть шаблон ворд, который автоматически заполняется данными из excel - в шаблоне места вставки помечены закладками. Но есть проблема - при вставке непосредственно в закладку, закладка удаляется.
Можете выложить примерный код?
Сейчас решаю аналогичную задачу: из excel открывается файл word и заполняется данными. Нужно, чтобы документ word открывался из специального шаблона (чтобы в шапке были реквизиты организации), при этом остальные файлы word открывались (в меню word) из стандартного пустого шаблона word.
Пример, того, что есть (без форматирования в word) приведен ниже.
Закладки тоже интересны, но шаблон пока больше.
Вложения
Тип файла: zip пример_без_шаблона.zip (8.5 Кб, 62 просмотров)
novak_26 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена закладки в тексте документа WORD на мой текст Tiolic Общие вопросы Delphi 4 23.12.2017 15:18
Помогиите сделать письма (Excel + Шаблон Word + dbf) xamillion Microsoft Office Excel 2 03.03.2009 21:23
Тем кто ищет Microsoft Office Word, здесь есть шаблон, с макросами OMO Microsoft Office Word 4 22.01.2009 03:46
Добавить в закладки Никки JavaScript, Ajax 2 09.02.2008 17:43
Откуда Word загружает шаблон если не из normal.dot Val_35 Microsoft Office Word 4 18.09.2007 12:36