Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Скорость работы пользовательских функций, возвращающих несколько значений
 
Предыдущие посты мои :))  
 
Нашёл временное решение:  
не растягивать одномерный массив вправо а создать функцию, которая сразу возвращает двумерный массив. На лист вгонять его с помощью ТРАНСП и контр+шифт+энтер :)))) работает существенно быстрее. в бэйсик происходит одно обращение на весь массив.
Скорость работы пользовательских функций, возвращающих несколько значений
 
{quote}{login=Казанский}{date=22.12.2010 07:06}{thema=}{post}слэн,  
нет, практически не меняется. И так тоже:  
 
Function SpeedTest1(inp1 As Double, inp2 As Double, inp3 As Double) As Variant  
Application.Volatile True  
Dim result(1 To 10) As Double  
Dim i As Long, inp As Double  
inp = inp1 + inp2 + inp3  
For i = 1 To 10  
result(i) = i * inp  
Next i  
SpeedTest1 = result  
End Function  
 
makchu,  
для того, чтобы выложить на лист массив значений, возвращаемый функцией, совсем не нужно извлекать их с помощью ИНДЕКС. Нужно просто вводить формулу в диапазон как формулу массива. Соответственно, ф-я будет вызываться в 10 раз реже (по числу значений). Попробуйте - торможения практически нет:{/post}{/quote}  
 
Спасибо! Да, с транспонированием работает побыстрее :) но у всё ещё сильно тормозит. Комп слабый.  
Я тело функции для примера привёл, в реальности оно другое, там несколько условий и простые вычисления.    
 
А создание надстроек не поможет делу? Ведь встроенные функции екселя работают заметно быстрее.
Скорость работы пользовательских функций, возвращающих несколько значений
 
{quote}{login=Казанский}{date=22.12.2010 05:55}{thema=}{post}Уберите Application.Volatile True{/post}{/quote}  
 
Пробовал и Application.Volatile False и вообще без употребления Application.Volatile, работает немножко быстрее, но всё равно очень медленно.  
 
Сама функция очень простая, я не вижу, что можно оптимизировать в ней. Причина в многократном вызове. Может ее можно "вшить" в ексель, что бы он ее воспринимал как "родную"?
Скорость работы пользовательских функций, возвращающих несколько значений
 
Столкнулся со следующей проблемой:  
при многократном использовании пользовательской функции, возвращающей массив значений, эксель начинает критически тормозить.    
Аналогичный алгоритм, написанный на листе с помощью формул эксель не тормозит.  
 
Какие есть варианты по оптимизации: ускорение вызова действующей функции или другое решение?
Страницы: 1
Наверх