Страницы: 1
RSS
Не обновляются автоматически данные
 
Уважаемые знатоки. Вот столкнулся с такой проблемой.  
 
Значение ячейки А1 на Листе1 зависит от значения ячейки В2 на Листе2. Вот если поменять значение В2 а потом перейти на лист1 то ячейка А1 не обновляется. И что бы обновить данные нужно кликнуть 2 раза по ячейке А1 и нажать на Enter. Может можно написать код который бы обновлял все формулы на листе. Подскажите, как можно решить данную проблему.  
 
Заранее огромное спасибо!
 
А версия Excel какая? Пересчёт какой стоит? Если ручной, то поставьте Автоматический.    
В Excel 2003 - Сервис - Параметры - Вычисления - Автоматически
 
Если Excel 2010 - вкладка Формулы - (справа вверху) Параметры вычисления - выбрать Автоматически
 
{quote}{login=Makintosh}{date=12.09.2010 12:25}{thema=Не обновляются автоматически данные}{post}Уважаемые знатоки. Вот столкнулся с такой проблемой.  
 
Значение ячейки А1 на Листе1 зависит от значения ячейки В2 на Листе2. Вот если поменять значение В2 а потом перейти на лист1 то ячейка А1 не обновляется. И что бы обновить данные нужно кликнуть 2 раза по ячейке А1 и нажать на Enter. Может можно написать код который бы обновлял все формулы на листе. Подскажите, как можно решить данную проблему.  
 
Заранее огромное спасибо!{/post}{/quote}  
может стоит включить автоматическое вычисления?
Спасибо
 
Можно это сделать макросом    
 
Application.Calculation = xlCalculationAutomatic
 
В настройках стоит автоматический пересчёт. Но всё равно приходится обновлять вручную. И ещё заметил, если формула написана встроенными функциями Excel то всё хорошо автоматом обновляется, а если с помощью написанной пользовательской функцией то возникает эта проблема.
 
А у вас в написанных функциях есть строка ?  
 
Application.Volatile
 
{quote}{login=Pavel55}{date=12.09.2010 12:39}{thema=}{post}А у вас в написанных функциях есть строка ?  
 
Application.Volatile{/post}{/quote}  
 
Нет, такой строки нету.
 
{quote}{login=Makintosh}{date=12.09.2010 12:42}{thema=Re: }{post}{quote}{login=Pavel55}{date=12.09.2010 12:39}{thema=}{post}А у вас в написанных функциях есть строка ?  
 
Application.Volatile{/post}{/quote}  
 
Нет, такой строки нету.{/post}{/quote}  
 
Function нннннн()  
   Application.Volatile True    
   ...  
   ...  
   ...  
   myFunction=...  
End Function
Спасибо
 
А вы попробуйте добавьте её сразу первой строкой под названием функции, вот так  
 
Function МояСуперФункция()  
Application.Volatile  
 
'ля-ля-ля  
'ля-ля-ля  
 
End Function  
 
вдруг поможет
 
Ребята, вы просто мозги. Всё помогло. Добавил строчку Application.Volatile и всё хорошо стало.
 
Мы такие )) Только учтите, что написав эту строку в вашей функции, ваша функция стала "летучей", т.е. она теперь всегда будет пересчитываться при любом изменении на листе, в книге, в другой открытой книги, т.е. при любом телодвижении (кроме изменения цвета фона ячейки). И соответственно, если ваша функции медлительная, то это будет сказываться на быстроте работы всего Excel
Страницы: 1
Читают тему
Наверх