Создать слово с начальным именем - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь создать документ Word из Excel с исходным именем файла, чтобы ускорить процесс сохранения.Документ Word не может быть макро-файлом, потому что я не могу сохранить их в нашей SharePoint.

Перед открытием документа Word я делаю следующее:

  • Выбираю отдельные текстовые отрывки из файла журнала (txt) и размещаю их в документе Excel.
  • В документе Excel они хранятся для Контроллинга работ.
  • Оттуда часть информации будет перенесена в документ Word, а затем сохранена для регистрации дел.

Я нашел несколько способов изменить имя в active.document, но документ Word не должен быть active.document.

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

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

Sub CreateNewWordDoc()

    Dim wrdApp As Word.Application
    With wrdApp
        .Name = "desiredFileName"
    End With

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True

    Dim wrdDoc As Word.Document
    Set wrdDoc = wrdApp.Documents.Add

End Sub

Можно ли как-то дать желаемое имя файла без фактического сохранения файла?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Невозможно присвоить документу имя без его сохранения - так устроен Word.Что возможно:

Измените заголовок окна документа:

wrdDoc.ActiveWindow.Caption = "desired file name"

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

Предварительно установить предлагаемое имя файла при отображении диалогового окна «Сохранить как»:

 With wrdApp.Dialogs(Word.WdWordDialog.wdDialogFileSummaryInfo) 'enum value 86
   .Title = "desired file name"
   .Execute
 End With

Это запишет строку во встроенный документсвойство Title, на которое ссылается Word при отображении Сохранить как для несохраненного документа.По какой-то причине использование Document.BuiltinDocumentProperties(wdPropertyTitle) не работает, поэтому нужно пройти по маршруту встроенного диалогового окна.Для получения дополнительной информации см https://wordmvp.com/FAQs/MacrosVBA/SetDefFilename.htm.

0 голосов
/ 06 декабря 2018

Вы пытаетесь присвоить Name объекту Application, который является неправильным.

Проверьте, поможет ли вам следующий код:

Sub CreateNewWordDoc()

    Dim wrdApp As Object 'Word.Application
    Dim wrdDoc As Object 'Word.Document

    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True

    Set wrdDoc = wrdApp.Documents.Add
    With wrdDoc
        .SaveAs "desiredFileName"
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...