Excell 2003. Вставил модуль с пользовательской функцией. При этом ячейки с формулами, содержащими эту функцию не пересчитываются автоматически - только при пинке Alt-Ctrl_F9. В настройках, ессно, указано пересчитывать автоматом. Формулы, не обращающиеся к этой функции пересчитываются нормально, автоматом. Вопрос: Как заставить пересчитывать автоматом ВСЕ формулы, даже включающие пользовательские функции.
Excell не пересчитывает автоматом формулы, содержащие пользовательские функции
08.04.2011 12:11:09
|
|
|
|
08.04.2011 12:12:41
Добавить в функции другие, летучие.
|
|
|
|
08.04.2011 12:20:52
Добавьте в текст каждой пользовательской функции, желательно первым исполняемым оператором:
Application.Volatile |
|
|
|
08.04.2011 12:55:20
привяжите пересчет к событию Worsheet_SelectionChange и после смены фона ячейки переходите на другую ячейку
|
|
|
|
11.04.2011 17:02:28
Если не сложно, можно чуть подробнее, что вписать в тело модуля?
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ????????????????????? End Sub |
|
|
|
11.04.2011 17:06:46
Application.Calculate - все книги и листы
или Target.Worksheet.Calculate - лист, на котором произошло событие пс. это не "тело модуля", это тело процедуры ;) |
|
|
|
11.04.2011 17:15:38
The_Prist, а Target.Worksheet.Calculate не сработает? или медленнее будет на пару миллионных долей секунды? :)
|
|
|
|
11.04.2011 17:44:50
Me.usedrange.Calculate
Работает без побочных эффектов!!! Спасибо всем принявшим участие, и отдельное спасибо The_Prist!!! |
|
|
|
11.04.2011 17:49:28
ясно, а то я испугался немножко поначалу.
согласен, Me - и короче, и красивше. просто до сих пор я до этого не дошёл. теперь запомню, спасибо. |
|
|
|
11.04.2011 19:02:17
Дим, а чем плохо
Range("A:B").Copy [BA1] ?
Я сам - дурнее всякого примера! ...
|
|
|
|
11.04.2011 19:15:39
И правильней:
Intersect(ActiveSheet.UsedRange, [a:b]).Copy [ba1]
Я сам - дурнее всякого примера! ...
|
|
|
|
11.04.2011 19:32:53
{quote}{login=KukLP}{date=11.04.2011 07:29}{thema=}{post}Но во всех случаях(кроме случая, когда столбец полностью заполнен) решает
Intersect(ActiveSheet.UsedRange, [a:b]).Copy [ba1]{/post}{/quote} а если UsedRange на листе начинается не с первой строки? результат будет немного неожиданным для пользователя? :)
фрилансер Excel, VBA - контакты в
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг |
|
|
|
Читают тему