![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
Добрый день!
Смысл в следующем: - на листе Data есть список котировок ценных бумаг - на листе Trading с помощью собственной функции поиска, помещенной в отдельном модуле, формируется таблица. Функция: Код:
И получается, что при редактировании любой ячейки этой книги (да и другой тоже), моя функция начинает все пересчитывать, что занимает время. Как оптимизировать функцию, или как сделать, чтоб она срабатывала только при изменении данных на листе Trading??? Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Возможно так,что бы не отключать и подключать пересчет формул
Код:
Код:
Анализ,обработка данных Недорого
Последний раз редактировалось doober; 19.01.2010 в 19:32. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
Разместил
Код:
функцию оставил где была (в модуле1). Получилось следующее: при редактировании любой ячейки Книги, пересчет все равно происходит, но функция уже вставляет не выбранные с Листа Data значения, а нули ![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]() Код:
Код:
Если Код:
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Другое дело, что она тут же будет заканчивать свою работу, возвращая 0... Я бы порекомендовал использовать один из сделующих вариантов: 1) Временно отключать автоматический пересчёт формул 2) Заменить пользовательскую функцию стандартными (ВПР + СМЕЩ) - наверняка, работать будет быстрее. |
|
![]() |
![]() |
![]() |
#6 | |||
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]() Цитата:
Цитата:
Разобрался Application.Calculation = xlManual Цитата:
![]() Последний раз редактировалось Maxx; 20.01.2010 в 11:17. |
|||
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
Сделал так:
модуль Листа Trading Код:
Код:
Но вопрос с формулами ВПР и пр. остается открытым, хотя я думаю - это сложно! EducatedFool, doober СПАСИБО! |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.10.2008
Сообщений: 294
|
![]()
И все же я сделал это формулами.
Вот решение, кому интересно: |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++. Строки. Собственная реализация стандартной функции itoa. | |arch| | Помощь студентам | 0 | 25.11.2009 00:04 |
Нужна функция поиска в строке | Kib | Общие вопросы Delphi | 3 | 19.04.2009 21:05 |
Собственная операционная система | kraftwerk | Помощь студентам | 0 | 15.04.2009 15:36 |
Собственная компонента: будильник | redred | Компоненты Delphi | 1 | 13.05.2008 06:48 |
функция поиска в диапазоне | Neonoff | Microsoft Office Excel | 1 | 18.02.2008 03:52 |