Текущее время: Вс, июл 27 2025, 22:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 10:14 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 12 2011, 10:01
Сообщения: 5


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 10:17 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 12 2011, 10:01
Сообщения: 5
Макрос тормозит в одном месте: код замены значения # в ячейках таблицы на пусто. При таком обновлении значения в ячейке макрос проваливается внутрь функций самого Bex-a. Может, кто знает, как отключить это внутри макроса?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 10:31 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2008, 07:22
Сообщения: 163
Откуда: Ektb
Пол: Мужской
Попробуйте добавить в макрос перед началом замены Application.EnableEvents = False.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 11:31 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Вопрос в том как в коде VBA вы реализовали замену значений в ячейках результирующей выборки с '#' на ' '. Попробуйте так:
Code:
Set Table = ThisWorkbook.Worksheets("Table")
Table.Range((varname(1).Address).Select

With Selection
.RowHeight = 15
.VerticalAlignment = xlBottom
.Replace What:="#", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False


Как то так


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 11:40 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 12 2011, 10:01
Сообщения: 5
УРА! РАБОТАЕТ! БОЛЬШОЕ-ПРЕБОЛЬШОЕ СПАСИБО!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 11:44 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 12 2011, 10:01
Сообщения: 5
там весь код замены в нужном столбце к:

ws.Range(ws.Cells(ПерваяСтрока, k), ws.Cells(ПоследняяСтрока, k)).Replace What:="#", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

не хватало как раз

Application.EnableEvents = False.

код стал работать мгновенно!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Ср, окт 12 2011, 11:49 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2008, 07:22
Сообщения: 163
Откуда: Ektb
Пол: Мужской
Не забудьте после кода замены вставить Application.EnableEvents = True.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема: в BexAnalyser 7.0 долго отрабатывает макрос из-за замены значений # на пусто.
СообщениеДобавлено: Чт, окт 13 2011, 12:45 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 12 2011, 10:01
Сообщения: 5
Кстати, идеальный вариант

Dim EnableEventsFirst As Boolean
EnableEventsFirst = Application.EnableEvents
Application.EnableEvents = False

и в конце

Application.EnableEvents = EnableEventsFirst

иначе есть вероятность поймать в будущем баг, если кто-то еще к этому документу макросы будет делать и использовать свойства Application.EnableEvents


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB