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

Линда спросила, есть ли способ вычислить только активную книгу. Когда пересчет выполняется в 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
Добавить комментарий