Хобрук: Ваш путь к мастерству в программировании

Excel VBA, чтобы открыть шаблон слова, заполнить, а затем сохранить как файл .docx в другом месте

Я создал шаблон слова с заполнителями, такими как ‹>, который я затем могу автоматически заменить своим макросом Excel. Когда я снова попробовал этот процесс, теперь открывается текстовый документ, в котором говорится, что это документ только для чтения. Как мне сохранить мой шаблон Word, чтобы его можно было редактировать? Кроме того, когда я открываю шаблон слова с помощью макроса Excel, как он узнает, что нужно сохранить его как новый документ Word, а не как обновленный шаблон?

Вот мой код:

Sub ReplaceText()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Set wApp = CreateObject("Word.Application")
wApp.Visible = True

Set wDoc = wApp.Documents.Open("file name here")

With wDoc
    .Application.Selection.Find.Text = "<<name>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("A5")
    .Application.Selection.EndOf

    .Application.Selection.Find.Text = "<<dob>>"
    .Application.Selection.Find.Execute
    .Application.Selection = Range("A6")

    .SaveAs2 Filename:=("file name goes here"), _
    FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
End With

End Sub
25.09.2014

Ответы:


1

Хотя подход @wahwahwah работает, он по-прежнему открывает шаблон как документ для редактирования, а затем сохраняет его в другом формате, подавляя предупреждения. Я подозреваю, что вы хотите добиться поведения при открытии шаблона из оболочки, которая генерирует «новый» документ на основе шаблона. Вы можете добиться этого с помощью метода «Добавить» таким образом;

Set wDoc = wApp.Documents.Add(Template:="file path here", NewTemplate:=False, DocumentType:=0)
09.04.2018

2

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

Set wApp = CreateObject("Word.Application")
wApp.DisplayAlerts = False
Set wDoc = wApp.Documents.Open Filename:="C:\Documents\SomeWordTemplate.dot", ReadOnly:=True

И когда вы собираетесь сохранить файл, просто сохраните его с расширением файла «.doc» вместо «.dot», чтобы он сохранялся как файл типа word. Вы также можете изменить имя файла и путь к выходному каталогу, если хотите. (Также не забудьте снова включить оповещения)

With wDoc

.ActiveDocument.SaveAs Filename:="C:\Documents\NewWordDocumentFromTemplate.doc"

End With

wApp.DisplayAlerts = True

Надеюсь это поможет!

25.09.2014
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..