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

Для работы мы должны сдать на бумагу оригиналы документов. В основном отметьте каждый номер страницы внизу. У меня есть шаблон, который имеет нижний колонтитул с номерами страниц, который позволяет мне помещать оригиналы в принтер и просто печатать нумерацию страниц вниз, но, как оно стоит сейчас, я должен нажать Ctrl + Enter для каждого номера страницы, который янужно, иногда сотни, а иногда тысячи.

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

Ответы [ 2 ]

1 голос
/ 05 ноября 2019
Private Sub Document_New()

Dim myResult As String

    myResult = InputBox("How many pages?")

    If myResult = "0" Then Exit Sub

    ActiveDocument.Paragraphs(1).Range.InsertAfter Text:=CStr(String$(CLng(myResult) - 1, Chr$(12)))

    Exit Sub

End Sub

@ FreeFlow, ваш код работал отлично, за исключением того, что вам нужно добавить «-1» в строку ActveDocumnet и выйти из Sub перед End Sub.Спасибо за фреймворк, чтобы решить эту проблему.

0 голосов
/ 04 ноября 2019

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

Public Function AutoNew()

Dim myResult                                As String

    myResult = InputBox("How many pages?")

    If myResult = "0" Then Exit Sub

    ActiveDocument.Paragraphs(1).Range.InsertAfter Text:=CStr(String$(CLng(myResult), Chr$(12)))

End Function

Отредактировано после наблюдения @CindyMeisters, что New не работает.

Я попробовал код, который я предоставил в новом шаблоне, который я создал, и действительно он не работал. Это удивило меня. Пересмотренный код, который работает, приведен ниже. Пожалуйста, обратите внимание. Если я открою Word и нажму на File.New, выберите мой шаблон, новый макрос не работает. Если на рабочем столе / File Explorer я щелкаю правой кнопкой мыши по шаблону и выбираю новый код с AutoExec работает как положено. Приношу извинения всем за неправильное направление. Я также исправил из функции в Sub.

Public Sub AutoExec()

Dim myResult                                As String

    myResult = InputBox("How many pages?")

    If myResult = "0" Then Exit Sub

    ActiveDocument.Paragraphs(1).Range.InsertAfter Text:=CStr(String$(CLng(myResult), Chr$(12)))

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