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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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