Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как отменить макрос в Exel 
:(
    Опции темы
sergei3000
Дата 20.4.2006, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



возможно ли сделать так, чтобы пользовательский макрос можно было отменить, как любое другое действие в MS Exel, путём нажатия на соответствующую кнопку?
а то после запуска макроса эта кнопка засеривается, и отменить действие (как и предшествовавшие ему другие действия) невозможно 
PM MAIL   Вверх
Naghual
Дата 20.4.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Правильно настроить безопасность Офиса. 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
likhobory
Дата 20.4.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20



цитата из справки:
Цитата

Undo Method
Cancels the last user-interface action.
This method undoes only the last action taken by the user before running the macro, and it must be the first line in the macro. It cannot be used to undo Visual Basic commands
 


--------------------
PM MAIL   Вверх
Staruha
Дата 20.4.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27



Цитата

а то после запуска макроса эта кнопка засеривается

 Нажми  Еsc потом End. 


--------------------
Возмездие настигнет
PM MAIL   Вверх
sergei3000
Дата 21.4.2006, 05:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



Цитата(Naghual @  20.4.2006,  12:45 Найти цитируемый пост)
Правильно настроить безопасность Офиса


настраивал на все возможные уровни безопасности макросов в параметрах экселя (если ты это имеешь в виду, если нет - поясни, пожалуйста). не помогает.


Цитата(likhobory @  20.4.2006,  13:10 Найти цитируемый пост)
цитата из справки


это я читал. думал, что, может, всё-таки есть какой-то способ...


Цитата(Staruha @  20.4.2006,  20:40 Найти цитируемый пост)
Нажми  Еsc потом End.


Esc, по-моему, прерывает макрос в момент его выполнения. а что делать, если макрос уже выполнен? тогда нажатие Esc ни к чему не приводит 
PM MAIL   Вверх
Дмит
Дата 21.4.2006, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 21.4.2006
Где: г.Волгоград

Репутация: 8
Всего: 9



Для того чтобы иметь возможность отмены, код VBA должен отслеживать изменения, проведенные макросом. Макрос должен быть готов отменить внесенные изменения при выборе пользователем команды Правка-Отмена.

Чтобы разрешить пользователю выполнять команду Правка-Отмена, воспользуйтесь методом OnUndo в качестве последнего оператора макроса. Этот метод позволяет указать текст, который отображается в опции меню Отмена, а также процедуру, вызываемую командой Правка=>Отмена. Например:
Application.OnUndo "Последний макрос", "MyUndoMacro"

В процедуре "MyUndoMacro" действия последнего макроса исправляются. В простейшем случае делается бэкап и восстанавливается полностью рабочий лист. 
PM MAIL WWW   Вверх
sergei3000
Дата 21.4.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 1.3.2006

Репутация: нет
Всего: нет



Дмит, 

Спасибо!

появляется ещё один нескромный вопрос.
возможно ли сделать так, чтобы можно было отменить действия, предшествовавшие выполнению макроса. то есть чтобы как в экселе отменять можно было несколько последних операций, в том числе и макрос, и операции, произведённые до его выполнения?

п.с. получается лишь отменять действия, произведённые после запуска макруса (ну и макрос тоже) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.