|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.09.2013, 17:21 | #11 | |
Пользователь
Регистрация: 27.09.2013
Сообщений: 14
|
Цитата:
- а не запихнуть ли мне макрос в цикл. В итоге получилось следующее: Sub my1() Dim PauseTime As Single Dim Start As Single PauseTime = 1 ' время в секундах Do While True [N48].GoalSeek Goal:=[M17], ChangingCell:=[D48] [N49].GoalSeek Goal:=[M18], ChangingCell:=[D49] Start = Timer Do While Timer < Start + PauseTime DoEvents Loop Loop End Sub Не знаю уж, насколько это эффективно (подозреваю, что мягко говоря не очень), но работает как надо. Поправьте пожалуйста, если будут мысли, время и желание. Спасибо! |
|
30.09.2013, 17:57 | #12 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
можно и так, конечно, но уж очень расточительно.
в любую ячейку =В1*1 или =В1+0 - чтобы В1 участвовла в расчете и обрабатывать событие calculate этой ячейки. читайте это в справке: Range.Calculate Method
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
30.09.2013, 18:10 | #13 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну да.
А если нужно контролировать диапазон - ну посчитайте по нему сумму, или количество занятых ячеек. Чего там сложного - у Вас ведь уже код висит на событии. Ну и перевесьте его на другое событие. Вероятно так - вешаем на пересчёт, а внутри проверяем что считалось: To calculate Follow this example All open workbooks: Application.Calculate (or just Calculate) A specific worksheet: Worksheets(1).Calculate A specified range: Worksheets(1).Rows(2).Calculate Хотя можно конечно и на каждый чих макрос отрабатывать. Особенно если там других формул нет
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 30.09.2013 в 18:14. |
01.10.2013, 16:59 | #14 |
Пользователь
Регистрация: 27.09.2013
Сообщений: 14
|
IgorGO, Hugo121 ещё раз большое спасибо за помощь и подсказки. После тестирования всё-таки пришлось оставить вариант с циклом и даже увеличить тайминг, т.к. при очень частом обновлении выяснилось, что при некоторых, так называемых "аномальных" значениях ...Goal:=[M17]... (их больше 30 шт.) методом итераций формула просто физически не находит решений. Таким образом практически оставалось целесообразнее оставить цикл и сущетвенно увеличить тайминг, чтобы не "хватать" каждую аномалию.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переделать формулу для Excel 2003 | sanya14 | Microsoft Office Excel | 12 | 25.01.2012 13:47 |
Переделать формулу для Excel 2003 | cassiopeya | Microsoft Office Excel | 4 | 27.09.2010 14:27 |
Нужно упростить, переделать формулу | avtopark | Microsoft Office Excel | 3 | 06.02.2010 10:32 |
Как переделать формулу | mik | Microsoft Office Excel | 1 | 27.10.2007 19:07 |