|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.05.2010, 18:59 | #1 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
Условие в макросе от выбора кнопки
Есть проблема: на листе 2 кнопки, запускающие 2 почти одинаковых макроса. Разница в том, что первая выводит на печать заданную область, а вторая нет. Оставшаяся часть макросов выполняет одинаковые функции. Можно-ли создать условие в одном макросе, по которому при нажатии на первую кнопку печать будет, а при нажатии на вторую - нет (чтобы удалить лишний макрос).
Вариант: MsgBox("Распечатать ?", Buttons:=3) не подходит, хотелось бы в одно нажатие. Посоветуйте, пожалуйста. |
18.05.2010, 20:38 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Допустим с печатью МАКРОС1.
В обьявлении макроса добавляем параметр ПЕЧАТАТЬ as boolean. С одной кнопки вызываем МАКРОС1 true, с другой МАКРОС1 false. в теле макроса фрагмент, который выводит на печать заключаем в такие скобки if ПЕЧАТАТЬ then ' фрагмент распечатывающий данные end if
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
18.05.2010, 20:39 | #3 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Может быть, объявить булеву переменную на уровне модуля. Что-то вроде этого:
Dim Бул As Boolen Sub CommandButton1_Click() Бул = False Call ОсновнойМакрос End Sub Sub CommandButton2_Click() Бул = True Call ОсновнойМакрос End Sub А в основном макросе: ... If Бул=False Then печатаем Else не печатаем End If ... |
18.05.2010, 20:40 | #4 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Упс, опоздал на минуту.
|
18.05.2010, 21:01 | #5 | |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
Цитата:
Код:
Просто принтера сейчас нет, проверить не могу. Без печати работает. Последний раз редактировалось ELE-COM; 18.05.2010 в 21:05. |
|
18.05.2010, 21:08 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Правильно.
Макрос был обьявлен Sub МАКРОС1() а теперь надо Sub МАКРОС1(ПЕЧАТЬ as boolean) и в теле макроса две строки добавить (описано уже выше как)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
18.05.2010, 21:16 | #7 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
|
18.05.2010, 21:19 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
ELE-COM,
проверить сейчас можно так: закомментировать все что должно было печатать поставить одну строку MsgBox "Тут должно было распечатываться..." Не забыть потом все вернуть к правильному состоянию nilem, очень понравилось это: If Бул=False Then печатаем Else не печатаем End If Строго как в анекдоте о программисте. Ложится программист спать возле кровати ставит стакан с водой и пустой стакан. На вопрос: - Зачем? - А вдруг пить ночью захочу! - А пустой??? - А вдруг не захочу!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
18.05.2010, 21:46 | #9 |
Пользователь
Регистрация: 08.05.2010
Сообщений: 48
|
Код:
|
18.05.2010, 21:48 | #10 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Да, не профессионал. Но подход-то верный!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Условие в макросе на цвет заливки ячеек | Chelentano | Microsoft Office Excel | 2 | 03.08.2009 23:44 |
Что неверно в макросе? | Иванов_ДМ | Microsoft Office Excel | 11 | 22.05.2009 21:57 |
Функции в макросе. | Rom1k06 | Microsoft Office Excel | 7 | 19.10.2008 11:22 |
Константы в Макросе | valerij | Microsoft Office Excel | 2 | 03.02.2008 23:33 |
триггерные кнопки и кнопки переключатели в DELPHI | MARGO | Помощь студентам | 3 | 12.11.2007 17:35 |