Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 27
1

Печать в Word выбранных страниц

22.09.2019, 13:38. Просмотров 990. Ответов 6

Здравствуйте, форумчане.
Вот есть код для печати выбранных страниц.
Он работает в Excel. а как его изменить, чтобы работал в Word 2016.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub printCustomSelection()
Dim startpage As Integer
Dim endpage As Integer
startpage = InputBox("Please Enter Start Page number.", "Enter Value")
If Not WorksheetFunction.IsNumber(startpage) Then
MsgBox "Invalid Start Page number. Please try again.", "Error"
Exit Sub
End If
endpage = InputBox("Please Enter End Page number.", "Enter Value")
If Not WorksheetFunction.IsNumber(endpage) Then
MsgBox "Invalid End Page number. Please try again.", "Error"
Exit Sub
End If
Worksheets.PrintOut From:=startpage, To:=endpage, Copies:=1, Collate:=True
End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2019, 13:38
Ответы с готовыми решениями:

Выборочная печать страниц Excel
Доброе время суток! Помогите,пожалуйста,напечатать в Excel страницы выборочно, как в Wordе.

Печать указанных страниц в Excel
Необходимо написать макрос, который бы позволил выводить на печать не диапазон страниц с ... по...

Нумерация страниц и двухсторонняя печать
Задача: Распечатать i одинаковых страниц (создав одну), но пронумерованных от 1 до i. Макрос: ...

VBA office и количество страниц на печать
Доброго времени суток! У меня такой вопрос, возможно ли средствами VBA забирать информацию о печати...

6
1514 / 482 / 119
Регистрация: 14.01.2013
Сообщений: 2,219
22.09.2019, 14:40 2
Лучше сделать не так. Не переделывать макрос от Excel, а сделать сразу Word'овский. Запускаете "Запись макроса", печатаете требуемую страницу, останавливаете запись. Идёте в редактор кода VBA и вуаля! Видите ответ на свой вопрос.
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 27
22.09.2019, 15:18  [ТС] 3
Kubuntovod, Это понятно только мусора много от макрорекодера. Да и выбирать первую и последнюю страницу через окно ввода данных нельзя, чтобы не лазить в настройки печати каждый раз.
Вот что от записи макроса
Visual Basic
1
2
3
4
5
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="3-5", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
Как видим тут много лишнего и невозможно менять данные по вводу первой и последней печати страницы.
0
1514 / 482 / 119
Регистрация: 14.01.2013
Сообщений: 2,219
22.09.2019, 16:49 4
Otter, сильно подозреваю, что ТС-у хватит одного параметра - Pages:="3-5". Остальное можно опустить.

Цитата Сообщение от Otter Посмотреть сообщение
Как видим тут много лишнего и невозможно менять данные по вводу первой и последней печати страницы.
Вместо "3-5" нельзя подставить своё? Почему невозможно?
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 27
22.09.2019, 19:25  [ТС] 5
Цитата Сообщение от Kubuntovod Посмотреть сообщение
Вместо "3-5" нельзя подставить своё? Почему невозможно?
пишу так
Visual Basic
1
2
3
Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
    wdPrintDocumentWithMarkup, Copies:=1, Pages:="startpage-endpage", PageType:= _
    wdPrintAllPages, Collate:=True.
Тогда Выдает ошибку Указан неверно диапазон печати Ошибка 5141.
Нужно что то изменить в коде.

Добавлено через 1 час 10 минут
Если написать так:
Visual Basic
1
2
3
Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
    wdPrintDocumentWithMarkup, Copies:=1, Pages:=startpage-endpage, PageType:= _
    wdPrintAllPages, Collate:=True.
тогда выдает ошибку 13.

Добавлено через 2 минуты
Цитата Сообщение от Otter Посмотреть сообщение
If Not WorksheetFunction.IsNumber(startpage)
Как это (проверку стартовой страницы) нужно изменить для Word чтобы работало.
0
4107 / 2214 / 938
Регистрация: 01.12.2010
Сообщений: 4,625
22.09.2019, 20:22 6
Лучший ответ Сообщение было отмечено Otter как решение

Решение

Цитата Сообщение от Otter Посмотреть сообщение
Как это (проверку стартовой страницы) нужно изменить для Word чтобы работало.
Вы серьёзно полагаете, что переменная, имеющая тип Integer может и не быть числом ?

Вот если заменить Integer на String, то тогда проверка If Not IsNumeric(startpage) будет иметь смысл.


Visual Basic
1
Pages:=startpage & "-" & endpage
Или сразу попросить пользователя, чтобы он вводил именно 3-7
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 27
22.09.2019, 21:20  [ТС] 7
pashulka, Спасибо большое за помощь.

.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2019, 21:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Печать заданного числа страниц с нумерацией ячеек
Здравствуйте, Уважаемые! Имеется у меня пользовательская форма. Вызывается кнопкой. На самой форме...

Количество страниц в разделе | Word
Здравствуйте Коллеги! В принципе задача учебная (для самообразования). Необходимо научиться...

Подсчитать количество страниц Word
Помогите решить проблему, необходимо подсчитать Количество страниц и распечатать все кроме...

Таблица на несколько страниц в WORD.
Страница №1 таблица _______________________ | | | | | | | |...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.