Расчет только активной книги

Линда спросила, есть ли способ вычислить только активную книгу. Когда пересчет выполняется в Excel, он пересчитывает все открытые книги, и если это очень большие книги, на повторный расчет иногда может уйти более пятнадцати минут. Если она сможет ограничить то, что пересчитывается, то процесс, очевидно, будет выполняться быстрее.

К сожалению, нет прямого метода, чтобы просто вычислить конкретную книгу. Однако при желании вы можете рассчитать только активный рабочий лист. Сначала установите ручной режим пересчета, выполнив следующие действия:

  1. Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку Office, а затем щелкните Параметры Excel. В Excel 2010 и более поздних версиях откройте вкладку Файл на ленте, а затем щелкните Параметры.)
  2. Щелкните область формул слева от диалоговое окно. (См. Рис. 1.)
  3. Рис. 1. Параметры формул диалогового окна “Параметры Excel”.

  4. Убедитесь, что в разделе диалогового окна “Параметры расчета” установлен переключатель “Вручную”.
  5. Нажмите ОК.

Теперь ваша рабочая книга (фактически, все ваши открытые книги) будет пересчитана только при нажатии F9 . Если вы хотите пересчитать только текущий лист, нажмите Shift + F9 .

Excel также предоставляет функции макросов, которые позволяют вам делать любую из этих трех вещей: вычислить все открытые книги, вычислить конкретный рабочий лист в книге или вычислить указанный диапазон ячеек на листе. Обладая этими знаниями, вы можете создать макрос, который будет перебирать все рабочие листы в книге и пересчитывать каждый из них.

Следующий макрос устанавливает ручной режим вычислений (чтобы другие книги не вычисляли ), а затем просматривает и вычисляет каждый лист активной книги.

Sub CalcBook () Dim wks As Worksheet Application.Calculation = xlManual For Each wks In ActiveWorkbook.Worksheets wks.Calculate Next Set wks = NothingEnd Sub

Если вы считаете, что можете рассчитывать разные части своей книги в разное время, вы можете развернуть макрос, чтобы он выполнял любой тип вычислений, который вам может понадобиться:

Sub CalcWhat () Dim iAnsure As Integer Application.Calculation = xlManual iAnsure = InputBox («1 = Рассчитать используемый диапазон» _ & vbCrLf & _ «2 = Рассчитать этот рабочий лист» _ & vbCrLf & _ «3 = Рассчитать эту книгу «_ & vbCrLf & _» 4 = Рассчитать все книги в памяти «_ & vbCrLf & vbCrLf & _ «Введите номер выбора сверху» _ & vbCrLf & «Затем нажмите OK», _ «Рассчитать что?», «Введите номер, пожалуйста», _ 5000, 5000) Выберите вариант iAnsure Case 1 ‘Выбор только диапазона. Случай 2 ‘Только лист ActiveSheet. Вычислить случай 3 ‘Рабочая книга только для каждой недели в ActiveWorkbook.Worksheets wks.Calculate Next Case 4’ All Open Workbooks Application.CalculateFull End End SelectEnd Sub

Этот макрос представляет поле ввода, которое предлагает пользователю как к какому типу пересчета желателен. Когда пользователь вводит число от 1 до 4, выполняется желаемый тип пересчета.

Источник: frestage.ru

Бытовой вопрос