Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.06.2009, 14:01   #1
Klim Bassenger
Форумчанин
 
Аватар для Klim Bassenger
 
Регистрация: 20.01.2009
Сообщений: 138
Репутация: 13
По умолчанию Вопрос по пересчету таблиц.

Доброго время суток!
У меня есть вопрос:
Как происходит взаимодействие пересчета формул и работы макроса... То есть... В таблице в первой строке в столбцах от "B" до "CA" много разных формул (вклячая не самую быструю - ВПР).
Далее при помощи макроса:
1. вставляем в Столбец "А" данные... Строк так тысяч на пять...
2. "растягиваем" формулу вниз...
3. Копируем полученные данные и вставляем на другой лист...
Отсюда вопрос: Excel сначала пересчитывает все формулы до конца, а потом копирует на другой лист или может не дождаться конца расчета?
Дело в том, что, при вставке абсолютно одинаковых данных и запуске одного и того же макроса, результат получается разный... Может можно поставить в макросе условие, чтоб не торопился данные копировать, а дождался конца пересчета???
Спасибо!
P. S. Выложил бы файл, но там черт ногу сломит в коде.. как говорится проще заново сделать, чем сидеть и разбираться в нем!!! А суть проблемы я попытался изложить.
__________________
Чтобы правильно задать вопрос, надо знать большую часть ответа.
Klim Bassenger вне форума   Ответить с цитированием
Старый 17.06.2009, 15:02   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Адрес: Россия, Урал
Сообщений: 6,837
Репутация: 1220

skype: ExcelVBA.ru
По умолчанию

В самом начале макроса поставьте:
Application.Calculation = xlCalculationManual ' отключаем пересчёт формул

В конце макроса (или в том месте, когда надо выполнить пересчёт)
Application.Calculation = xlCalculationAutomatic ' включаем обратно
EducatedFool вне форума   Ответить с цитированием
Старый 18.06.2009, 11:53   #3
Klim Bassenger
Форумчанин
 
Аватар для Klim Bassenger
 
Регистрация: 20.01.2009
Сообщений: 138
Репутация: 13
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
В самом начале макроса поставьте:
Application.Calculation = xlCalculationManual ' отключаем пересчёт формул

В конце макроса (или в том месте, когда надо выполнить пересчёт)
Application.Calculation = xlCalculationAutomatic ' включаем обратно
У меня так и было...
Пресчитывал всё за 4 минуты, но каждый раз разные значения...
Теперь убрал вкл/выкл персчет ... Пересчитывает 15 минут, но вроде без ошибок...
Может я не там пересчет вставлял и убирал???
__________________
Чтобы правильно задать вопрос, надо знать большую часть ответа.
Klim Bassenger вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт таблиц АлёнаP Microsoft Office Access 0 18.03.2009 17:45
Вопрос с формой и связью таблиц Broodstar Microsoft Office Access 2 13.11.2008 18:01
Объеденение 2-х таблиц Stanislav БД в Delphi 3 28.07.2008 09:44
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29
Обновление таблиц Office Microsoft Office Excel 1 31.07.2007 09:09


14:09.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru