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

Как распечатать диапазон ячеек без цвета

30.05.2015, 12:31. Показов 1110. Ответов 9
Метки нет (Все метки)

Всем добрый день!
Подскажите пожалуйста, как справится со следующей задачей посредством макроса:
В Excel на листе есть диапазон ячеек, часть которых выделена цветом для лучшей визуализации. Этот диапазон нужно распечатать с кнопки без сохранения цвета, при этом цвет ячейки в самом диапазоне не должен измениться.

Всем спасибо заранее
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2015, 12:31
Ответы с готовыми решениями:

Распечатать определенный диапазон ячеек в зависимости от введенного числа
Всем привет!) Мне задали написать макрос, который будет распечатывать определенный диапазон ячеек в...

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

Распечатать определенный диапазон ячеек в зависимости от введенного числа. Задать листы для печати
Всем привет!) Мне задали написать макрос, который будет распечатывать определенный диапазон ячеек в...

Обработать выделенный диапазон ячеек, результат записать в смежный диапазон
Напишите в среде Excel макрос, который в выделенном диапазоне ячеек должен выполнять заданные...

9
4119 / 2224 / 939
Регистрация: 01.12.2010
Сообщений: 4,624
30.05.2015, 12:41 2
Visual Basic
1
2
3
ActiveSheet.PageSetup.BlackAndWhite = True
'Здесь Ваша печать, например Range("A1:C100").PrintOut
ActiveSheet.PageSetup.BlackAndWhite = False
0
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
30.05.2015, 16:56  [ТС] 3
Спасибо! Но данный режим меняет цветную ячейку на серую, а не убирает цвет ячейки
0
4119 / 2224 / 939
Регистрация: 01.12.2010
Сообщений: 4,624
30.05.2015, 17:36 4
Сорри, на черно-белом принтере (меню Файл - команда Параметры страницы - закладка Лист - "флажок" Черно-белая) всегда прокатывало.

P.S. Диапазон большой ? Есть ли ячейки, к которым применено условное форматирование ?
0
15038 / 6362 / 1726
Регистрация: 24.09.2011
Сообщений: 9,971
30.05.2015, 18:23 5
Лучший ответ Сообщение было отмечено interestingly как решение

Решение

AFAIR там есть "черновой" режим, вот он дает черно-белый текст, но без картинок. Сейчас проверить и найти свойство не могу.
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
30.05.2015, 18:46  [ТС] 6
Я нашла этот черновой режим: "печать" - "параметры страницы" - "лист" - "печать черновая". Запись макроса дает следующий код (что из этого в итоге нужно прикрепить к кнопке?):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = True
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
End Sub
0
4119 / 2224 / 939
Регистрация: 01.12.2010
Сообщений: 4,624
30.05.2015, 18:47 7
Лучший ответ Сообщение было отмечено interestingly как решение

Решение

Черновая - это ActiveSheet.PageSetup.Draft = True , но здесь даже границы ячеек не печатаются
1
15038 / 6362 / 1726
Регистрация: 24.09.2011
Сообщений: 9,971
30.05.2015, 18:54 8
Ну значит скопировать диапазон на новый лист, сделать черный цвет, распечатать, удалить лист.
1
4119 / 2224 / 939
Регистрация: 01.12.2010
Сообщений: 4,624
30.05.2015, 19:04 9
Казанский, я уже несколько вариантов родил, в т.ч. и с временным листом, но если автору вопроса подойдёт черновая печать, то ... имеет смысл подождать вердикт
1
0 / 0 / 0
Регистрация: 25.05.2015
Сообщений: 10
30.05.2015, 20:49  [ТС] 10
Всем спасибо большое! Мне нужно распечатывать только значения из ячеек (текст) и черновая печать подошла. Границы ячеек не нужны. ActiveSheet.PageSetup.Draft = True вставила в макрос, все работает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2015, 20:49

Как выделить диапазон ячеек ?
Задача простая, но нигде не могу найти как оформить синтаксис Нужно выделить диапазон из ячеек...

Как задать диапазон ячеек
Здравствуйте. Как в этом коде задать диапазон через значения переменных типа...

Как выделить диапазон ячеек?
Объясните ламеру как можно вставить в функцию дапазон "DNosaukums" если известны первая и последняя...

Залить диапазон ячеек, если одна из ячеек содержит нужный текст
Здравствуйте! Помогите залить цветом диапазон 24R*20C, если ячейка L10 содержит текст "Дефектов не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru