![]() |
|
Модераторы: mihanik |
![]()
|
|
| katherine96 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 8.4.2014 Репутация: нет Всего: нет |
Здравствуйте! Создала таблицу, в которой макрос удаляет определенные строки. Хотелось бы сделать так, чтоб после удаления строк можно было отменить данное действие. Понятно, что можно просто не сохранять изменения в файле, но это не очень удобно.
Итак, макрос на удаление строк: Sub УдалениеСтрокПоУсловию() Dim ra As Range, delra As Range Application.ScreenUpdating = False ' отключаем обновление экрана ТекстДляПоиска = "-" ' удаляем строки с таким текстом ' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows ' если в строке найден искомый текст If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then ' добавляем строку в диапазон для удаления If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra) End If Next ' если подходящие строки найдены - удаляем их If Not delra Is Nothing Then delra.EntireRow.Delete Application.OnUndo "УдалениеСтрокПоУсловию", "MyUndoMacro" End Sub Кнопка на отмену последнего действия активна, но при нажатии изменений не происходит. Хотелось бы знать можно ли изменить данный код для исправления этого? |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: 3 Всего: 12 |
Прописать код "восстановления" в Application.OnUndo. При этом ваш макрос должен ещё куда нибудь записывать историю изменений для возможного последующего отката.
-------------------- (С) kapbepucm |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |