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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2019, 10:13   #1
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию Как правильно указать диапазон печати в макросе?

В общем я дурачок в программировании. Поэтому прошу помощь. Есть макрос в экселе, который подставляет данные из таблицы в шаблон ворд, сохраняет этот шаблон и отправляет его на печать. Срока печати в нём выглядит так
objDoc.PrintOut True 'Filename:=sOut, Copies:=nCop ' отправляем фоном на печать
Шаблон состоит из 3-х страниц. Мне надо страницы 1,2 распечатать в 2-х экземплярах, страницу 3 - в одном. Прошу помощи!
vvedenka вне форума Ответить с цитированием
Старый 11.09.2019, 10:38   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от vvedenka Посмотреть сообщение
Шаблон состоит из 3-х страниц. Мне надо страницы 1,2 распечатать в 2-х экземплярах, страницу 3 - в одном. Прошу помощи!
попробуйте так
Код:
objDoc.PrintOut True 'Filename:=sOut, From:=1, To:=2, Copies:=2 ' отправляем фоном на печать
objDoc.PrintOut True 'Filename:=sOut, From:=3 Copies:=1 ' отправляем фоном на печать
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2019, 10:55   #3
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так
Не получилось. Он так просто в 2-х экземплярах весь документ печатает.
vvedenka вне форума Ответить с цитированием
Старый 11.09.2019, 11:02   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
From Optional Variant The starting page number when Range is set to wdPrintFromTo.
To Optional Variant The ending page number when Range is set to wdPrintFromTo.
Полагаю, что еще Range нужно задать:
Цитата:
Range Optional Variant The page range. Can be any WdPrintOutRange constant.
Range:=wdPrintFromTo
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.09.2019, 11:07   #5
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Полагаю, что еще Range нужно задать:

Range:=wdPrintFromTo
Это куда вставить?
vvedenka вне форума Ответить с цитированием
Старый 11.09.2019, 11:13   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ой-её...

так у Вас же закомментировано всё (подсветка права!!!)!

а если так?

Код:
objDoc.PrintOut From:=1, To:=2, Copies:=2 ' отправляем фоном на печать
objDoc.PrintOut From:=3, Copies:=1 ' отправляем фоном на печать
или, если прав Аватар, тогда
Код:
objDoc.PrintOut Range:=wdPrintFromTo, From:=1, To:=2, Copies:=2 ' отправляем фоном на печать
objDoc.PrintOut Range:=wdPrintFromTo, From:=3, Copies:=1 ' отправляем фоном на печать

Последний раз редактировалось Serge_Bliznykov; 11.09.2019 в 11:17.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2019, 11:24   #7
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию

Неа, не работает. Если я вставляю обе строки, то он начинает ругаться на вторую. Если оставляю только первую, он тоже отказывается. Что в варианте аватара, что Serge_Bliznykov
vvedenka вне форума Ответить с цитированием
Старый 11.09.2019, 11:42   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от vvedenka Посмотреть сообщение
Если я вставляю обе строки, то он начинает ругаться на вторую.
какими словами?


Цитата:
Сообщение от vvedenka Посмотреть сообщение
Если оставляю только первую, он тоже отказывается.
в чём это проявляется? Как Вы поняли, что они именно "отказывается"?

если восстановить True - это на что-то влияет?

Вот такая строчка что-то даёт?

Код:
objDoc.PrintOut Range:=wdPrintFromTo, From:="1", To:="2"
а такая?

Код:
objDoc.PrintOut Pages:="1,2"

Последний раз редактировалось Serge_Bliznykov; 11.09.2019 в 11:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2019, 11:53   #9
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию

Блин, извиняюсь, срочно уехать пришлось. Теперь только завтра проверю.
vvedenka вне форума Ответить с цитированием
Старый 11.09.2019, 13:43   #10
vvedenka
Новичок
Джуниор
 
Регистрация: 11.09.2019
Сообщений: 9
По умолчанию

Значит, по порядку.

Код:
objDoc.PrintOut From:=1, To:=2, Copies:=2 ' отправляем фоном на печать
objDoc.PrintOut From:=3, Copies:=1 ' отправляем фоном на печать
Получаю run-time error '13'
Type missmach
Нажимаю debug, вот эта строка выделена жёлтым: objDoc.PrintOut From:=1, To:=2, Copies:=2 ' отправляем фоном на печать




Следующий вариант.
Цитата:
objDoc.PrintOut Range:=wdPrintFromTo, From:=1, To:=2, Copies:=2 ' отправляем фоном на печать
objDoc.PrintOut Range:=wdPrintFromTo, From:=3, Copies:=1 ' отправляем фоном на печать
Получаю run-time error '5148' Число должно находиться в диапазоне от -32765 до 32767
Нажимаю debug, вот эта строка выделена жёлтым: objDoc.PrintOut Range:=wdPrintFromTo, From:=1, To:=2, Copies:=2 ' отправляем фоном на печать




Следующий вариант:
Код:
objDoc.PrintOut Range:=wdPrintFromTo, From:="1", To:="2"
Получаю run-time error '5148' Число должно находиться в диапазоне от -32765 до 32767
Нажимаю debug, вставленная строка светится желтым.





Последний вариант:
Код:
objDoc.PrintOut Pages:="1,2"
Принтер напечатал один экземпляр всех трёх страниц, но на компе вывалилась ошибка run-time error '4378' Object doesn't support this propety or method


Вот такая вот петрушка...
vvedenka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как указать диапазон алфавита в СИ Павел2517 Помощь студентам 1 13.03.2016 11:42
Как в паскале указать диапазон чисел от 1 до 10 в степени 100 Afroditaa Помощь студентам 1 22.11.2012 20:41
Как в макросе задать область печати выделенного фрагмена? vpm Microsoft Office Excel 4 14.11.2012 12:33
Как указать диапазон условия Tidus Microsoft Office Excel 3 18.02.2010 19:45
Как указать диапазон чисел? Inbox Общие вопросы Delphi 2 29.06.2007 01:21