|
|
|
Excel: UDF - отмена и откладывание выполнения - как зайти?
|
|||
|---|---|---|---|
|
#18+
требуется без использования механизмов типа RTD или DDE написать xla-специального типа, в которой кроме обычных пользовательских функций с нормальным в смысле правил пересчета Excel поведением будут функции двух специальных типов: 1) с отклоняемым расчетом и 2) отложенным расчетом функции 1-го типа должны иметь следующее поведение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Конечному пользователю и скриптам его рабочих книг полностью доступны ctrl-alt-f9 и application.calculateFull Возможно ли в принципе создание функций типа 1 без параллельного ведения потенциально обширных (и, вероятно бесполезных, ввиду возможности пересчета при старте пользовательской книги) списков "предыдущих значений" в недрах надстройки? ------------------ Логика работы функций второго типа заключается в том, что они не должны возвращать осмысленных значений, пока не закончится длинный DoALotOfCalcuations, в результате которого вернутся значения сразу для большого числа клеток. Но не должен задерживаться и excel с завершением пересчета. Эта логика укладывается в такой псевдокод Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Слабое место пункт B) - Excel может оказаться в режиме запрета событий и запуска процедуры расчета не произойдет. перенос назначения запуска расчета в SpecialFunction2 потребует дополнительного флага - расчет назначен. Кроме того, поскольку для определения момента завершения пересчета листа внутри SpecialFunction2 нет информации, то в таком случае не вполне ясно - как выбирать smallTime и какова вероятность пропуска для запуска "большого расчета". Есть ли решение для задачи1 и как может быть улучшена реализация задачи2 ? автор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 04:34:37 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=264&tid=2182239]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 182ms |
| total: | 283ms |

| 0 / 0 |
