Выборочная печать

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
beez
Сообщения: 2
Зарегистрирован: 13 авг 2004, 13:04

Вобщем нужно сделать так, чтобы чтобы на печать выводились только некоторые выбранные ячейки листа.
Пример. В электронном варианте на 1 листе размещены ячейки

ячейка1 ячейка2 ячейка3

ячейка4 ячейка5 ячейка6

нужно сделать так, чтобы на распечатанном листе были только ячейки 1, 3, 5. При этом их месторасположения на странице не должно поменяться.
Помогите плиз, очень нужно решить эту проблему. :cry:
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Есть идея с изменением цвета шрифта.Т.е. печать будем производить с помощью макроса. Перед вызовом макроса выделим нужные ячейки.

Сначала делаем Cells.Font.Color=белый,
Потом Selection.Font.Color=черный,
Потом печатаем все как обычно,
а на последок Cells.Font.Color=черный (возвращаем все в исходное состояние)
beez
Сообщения: 2
Зарегистрирован: 13 авг 2004, 13:04

Идея с заменой цвета шрифтов не пойдёт, т.к. печатать придётся на разноцветной бумаге. Помогите, плиз, очень надо решить этот вопрос. :cry:
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

ActiveSheet.PageSetup.PrintArea = "$A$1:$A$3"
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Идея с заменой цвета шрифтов не пойдёт, т.к. печатать придётся на разноцветной бумаге
Это почему ж это не подойдет. Если цвет шрифта равен цвету фона ячейки, то на бумаге любого цвета ничего не напечатается. :) Или я чего-то не понял?
Ну, в прочем, ессли не хотите, могу предложить еще вариант.
Несвязное выделение копируем на чистый лист, копируем ширину колонок, печатаем.
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$3"

chur, внимательнее! По условию задачи может оказаться, что в диапазоне а1:а3 ячейка а2 печататься не должна.
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

Да я просто показал наличие данного свойства. Дальше дело вкуса и прямых рук.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Не, ну там конечно можно прописать несмежный диапазон

ActiveSheet.PageSetup.PrintArea = "$A$1:$A$3;$E$1:$E$3"

Но тогда $A$1:$A$3 будет напечатан на одной странице, а $E$1:$E$3 на другой.
Ответить