jfd Пользователь Сообщений: 302 |
#1 29.01.2013 18:10:48 Здравствуйте!
Прикрепленные файлы
Изменено: jfd — 29.01.2013 18:11:55 |
||
Sergei_A Пользователь Сообщений: 443 |
#2 29.01.2013 19:06:29 Не хватило самой малости
|
||
jfd Пользователь Сообщений: 302 |
Спасибо, все заработало как надо. |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Потому что свойство PrintArea принимает в качестве аргумента текст(т.е. адрес диапазона), а не сам диапазон как объект. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
Добрый всем вечер. |
|
Sergei_A Пользователь Сообщений: 443 |
#6 12.03.2013 20:19:57
8 — это номер столбца H |
||
Выдает ошибку — переменная не определена( |
|
Kuzmich Пользователь Сообщений: 7998 |
|
Sergei_A Пользователь Сообщений: 443 |
#9 12.03.2013 21:20:49 SerjVorotilov, сорри, к Option Explicit я себя пока не приучил
|
||
Большое спасибо Вам, Sergei_A и Kuzmich |
|
Что-то не могу понять — область печати в обоих случаях — диапазон А1:Н1, несморя на наличие данных в ячейках, расположенных ниже (но в диапазоне А:Н) Прикрепленные файлы
|
|
Sergei_A Пользователь Сообщений: 443 |
#12 13.03.2013 00:06:23 Не думал, что у Вас первый столбец пустой, по-этому всегда лучше сразу кидать пример
|
||
Спасибо, Сергей, то что нужно. |
|
jfd Пользователь Сообщений: 302 |
#14 13.03.2013 00:16:13 Кажется самый простой вариант
|
||
SerjVorotilov Пользователь Сообщений: 231 |
#15 13.03.2013 00:30:10 Сделал через Worksheet_SelectionChange:
Еще раз огромное спасибо Вам, Сергей. |
||
SerjVorotilov Пользователь Сообщений: 231 |
#16 13.03.2013 00:33:51 Сделал через Worksheet_SelectionChange:
Еще раз огромное спасибо Вам, Сергей. Блин, только при использовании Worksheet_SelectionChange макрос начинает реагировать на ввод данных в столбцы, выходящие за определенный мной диапазон А:Н, что не есть гуд. |
||
Sergei_A Пользователь Сообщений: 443 |
#17 13.03.2013 00:42:26 Воспользуйтесь событием Workbook_BeforePrint
Изменено: Sergei_A — 13.03.2013 00:44:00 |
||
marchela Пользователь Сообщений: 8 |
Здравствуйте! |
Sanja Пользователь Сообщений: 14838 |
Согласие есть продукт при полном непротивлении сторон. |
marchela Пользователь Сообщений: 8 |
#20 18.01.2019 12:13:25 Доброго дня! Почему не в тему? У меня похожая задача. Смотрите вложение Сделал через Worksheet_SelectionChange:
у меня работает, но только нужно реализовать выделение области БЕЗ учета форматов и формул — только по отображаемому значению в ячейке. КАК ОПРЕДЕЛИТЬ ПОСЛЕДНЮЮ ЯЧЕЙКУ НА ЛИСТЕ ЧЕРЕЗ VBA? СПОСОБ 4 Да видел я этот пример — с реализацией туго , помогите, пожалуйста, соединить этот код с кодом из способа 4 Прикрепленные файлы
Изменено: marchela — 18.01.2019 12:20:36 |
||
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
marchela, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение. |
Юрий М Модератор Сообщений: 60575 Контакты см. в профиле |
#22 18.01.2019 12:24:26 И ещё:
Т.е. Ваш вопрос лишь косвенно связан с этой темой — задание области печати. |
||
Antag Пользователь Сообщений: 52 |
Получится задать разные области печати на нескольких листах книги, чтобы область печати менялась в зависимости от значения одной ячейки в другом листе? Если Главный!R6=»a» → область печати одна, |
MikeVol Пользователь Сообщений: 229 Ученик |
#24 24.01.2023 09:17:05 Antag Доброго времени суток. Возможно я не понял вас правильно. Как понял. Вариант:
Изменено: MikeVol — 24.01.2023 09:23:29 |
||
Antag Пользователь Сообщений: 52 |
#25 24.01.2023 16:05:48
Если Главный!R6=»a» → область печати на других (но не на всех) листах A1:G256, Изменено: Antag — 24.01.2023 16:06:08 |
||
MikeVol Пользователь Сообщений: 229 Ученик |
#26 24.01.2023 18:15:11 Antag,
вы этого не указали в своём стартовом посте #23 Думаю что при таких раскладах вам не составит большого труда подстроить под ваши нужды выше мной выложеный код. Необходимо изначально чётко ставить задачи, тут экстрасенсорными способностями никто не обладает. Удачи вам. Изменено: MikeVol — 24.01.2023 18:16:32 |
||
_Boroda_ Пользователь Сообщений: 1496 Контакты см. в профиле |
#27 25.01.2023 09:26:46 Для листов 1 и 3. Без макросов. См. Диспетчер имен Прикрепленные файлы
Скажи мне, кудесник, любимец ба’гов… |
200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Workbook_BeforePrint(Cancel As Boolean) ‘Блок печати и возвращения начального диапазона для печати Макрос будет запускаться перед печатью и переопределять диапазон по заполненному 2-му столбцу. 200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Workbook_BeforePrint(Cancel As Boolean) ‘Блок печати и возвращения начального диапазона для печати Макрос будет запускаться перед печатью и переопределять диапазон по заполненному 2-му столбцу. Иногда все проще чем кажется с первого взгляда. 200?’200px’:»+(this.scrollHeight+5)+’px’);»> Private Sub Workbook_BeforePrint(Cancel As Boolean) ‘Блок печати и возвращения начального диапазона для печати Макрос будет запускаться перед печатью и переопределять диапазон по заполненному 2-му столбцу. Источник Метод Sheets.PrintOut (Excel)Синтаксисexpression. PrintOut (From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas) выражение: переменная, представляющая объект Sheets. Параметры
Возвращаемое значениеПримечания«Страницы» в описаниях from и To относится к печатным страницам, а не к общим страницам на листе или книге. ПримерВ этом примере выводится активный лист. В этом примере выполняется печать со страницы 2 на страницу 3. В этом примере выводится три копии со страницы 2 на страницу 3. Поддержка и обратная связьЕсть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Источник VBA Excel. Объект PageSetup (параметры страницы)Параметры печатной страницы в VBA Excel. Свойство PageSetup объекта Worksheet. Объект PageSetup и описание некоторых его свойств с примерами. Описание объекта PageSetupОбъект PageSetup возвращается свойством PageSetup объекта Worksheet: где Expression — это выражение (переменная), возвращающее объект Worksheet. Свойства объекта PageSetupДиапазон печатиУстановить диапазон для печати из кода VBA Excel можно с помощью свойства PageSetup.PrintArea: Размеры полейСвойства, отвечающие за размер полей печатной страницы:
Свойства, отвечающие за размер полей, предназначены для чтения и записи, выражаются в точках (1 точка равна 1/72 дюйма или ≈1/28 см). Тип данных — Double. Для того, чтобы вручную не высчитывать количество точек в дюймах или сантиметрах, существуют методы Application.InchesToPoints и Application.CentimetersToPoints, которые автоматически переводят дюймы и сантиметры в точки. Пример задания размеров полей для печатной страницы: Источник Vba excel печать диапазона ячеекВ общем надо сделать что-то в виде макроса. И надо, чтоб выходило на печать 10 бумажек, в которых будет порставлено на каждой номер партии (в моем случае цифра 1 ) и по порядку кол-во кип (в моем случае 1-10) В общем надо сделать что-то в виде макроса. И надо, чтоб выходило на печать 10 бумажек, в которых будет порставлено на каждой номер партии (в моем случае цифра 1 ) и по порядку кол-во кип (в моем случае 1-10) Сообщение В общем надо сделать что-то в виде макроса. И надо, чтоб выходило на печать 10 бумажек, в которых будет порставлено на каждой номер партии (в моем случае цифра 1 ) и по порядку кол-во кип (в моем случае 1-10) Заранее спасибо Автор — Silver |
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Макрос печати выделенной области по заполненной ячейке. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Skip to content
Как в Эксель задать область печати
На чтение 1 мин. Просмотров 2.8k.
Что делает макрос: Этот макрос позволяет автоматически задать область печати.
Содержание
- Как макрос работает
- Код макроса
- Как использовать
Как макрос работает
В этом простом макросе, мы используем свойство PrintArea, чтобы определить диапазон ячеек, которые будут включены при печати. Как вы можете видеть, мы просто используем свойство PrintArea с адресом UsedRange. Свойство UsedRange дает диапазон, который охватывает ячейки, которые были использованы для ввода данных.
Чтобы сохранить эту динамику, мы реализуем код в изменении событии рабочего листа:
Код макроса
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address End Sub
Как использовать
Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Worksheet_Change. Размещение макроса позволяет запускать каждый раз, когда вы дважды щелкаете на листе.
- Активируйте редактор Visual Basic, нажав ALT + F11.
- В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
- Нажмите на лист, в котором вы хотите, чтобы вызвать код.
- Выберите Изменить событие из событий в раскрывающемся списке.
- Введите или вставьте код.
Сообщение от Ципихович Эндрю
Впервые об этом слышу-можно по подробней??
например, бывают ситуации, что ты задаёшь на печать и что-то не получается. Или допустим ситуация: вы пишете код, связанный с распечаткой, и код надо протестировать.
Чтобы не расходовать бумагу и др. расходные материалы, можно задавать печать на виртуальный принтер и смотреть результат. Когда вас результат устроит, можете уже задавать на реальный принтер.
Есть бесплатные виртуальные принтера, мне известен один — doPDF7.
Скачайте его, установите его у себя на компьютере. Теперь если вы откроете документ и откроете диалоговое окно «Печать», то в списке принтеров появится принтер doPDF7 — выберите его и нажмите ОК. Документ будет переведён в формат PDF.
Естественно, что реальная распечатка может отличаться от того, что у нас сделал виртуальный принтер.
Ещё есть один нюанс, PDF-файлы, сделанные с помощью doPDF7, не воспринимаются Adobe Acrobat. Например, если вы захотите перевести PDF-файл, сделанный в doPDF7, с помощью Adobe Acrobat обратно в Word, то появится сообщение, что для Adbobe Acrobat данный файл является непригодным.