Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2014, 10:36   #1
Svetofor-ed
Новичок
Джуниор
 
Регистрация: 27.08.2014
Сообщений: 1
По умолчанию Остановить выполнение макроса

Здравствуйте! Имеется база данных и в некоторых ее столбцах есть пустые ячейки. Что бы можно было отфильтровать эти столбцы, я нашел на этой форуме такие вот макросы

Код:
Sub ЗаполнитьПустыеЯчейки№клиента()
    'Очистка
    On Error Resume Next: Application.ScreenUpdating = False
    For Each cell In ActiveSheet.UsedRange.Columns(3).Offset(1).Cells
        If cell.Value = "" Then cell.Formula = "=" & """" & cell.Offset(-1).Value & """"
    Next cell
End Sub

Sub Очистить№клиента()
    On Error Resume Next: Application.ScreenUpdating = False
    ActiveSheet.UsedRange.Columns(3).SpecialCells(xlCellTypeFormulas).ClearContents
End Sub
Первый заполняет все ячейки нужного мне столбца значениями из ячейки выше, второй очищает заполненные ячейки. Все отлично работает, но в моей таблице проставлены формулы вплоть до 5000 ячейки, и макрос, соответственно, заполняет все до 5000 ячейки, что занимает 3-5 секунд.
Можно ли сделать остановку макроса по какому-нибудь условию (допустим, если в определенном столбце появилось пустое знаечение, значит макрос останавливается), что бы заполнялось только уже заполненная часть таблицы. Сам я в макросах почти не разбираюсь, поэтому прошу помощи.

Не пойму как прикрепить сюда файл базы данных.
Svetofor-ed вне форума Ответить с цитированием
Старый 08.09.2014, 10:52   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. сначала заполняете все пустые ячейки формулами, как в ячейке выше
2. а потом очищаете все ячейки заполненные формулами
извините, в этом потайной смысл, которого "непосвяженным" не понять...

п.1 можно пропустить выполнить только п.2 - результат будет аналогичным и, соответственно, гораздо быстрее
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить выполнение скрипта max9123 Общие вопросы Delphi 2 02.11.2013 11:59
Остановить выполнение кода, если подвигать мышкой igrok111 Общие вопросы Delphi 5 22.05.2013 10:21
Остановить выполнение процесса при нажатии на кнопку Aleksandr Microsoft Office Excel 2 04.03.2011 10:28
Как остановить выполнение button.onclick? igabenu Общие вопросы Delphi 6 21.01.2011 23:36
Как остановить выполнение макроса ? kzld Microsoft Office Excel 2 19.07.2009 13:16