Линда спросила, есть ли способ рассчитать только активную книгу.

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

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

  1. Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку «Office», а затем нажмите «Параметры Excel. В Excel 2010 и более поздних версиях откройте вкладку« Файл »на ленте, а затем нажмите« Параметры ».)

  2. Щелкните область формул в левой части диалогового окна. (См. Рис. 1.)

  3. Убедитесь, что в диалоговом окне в разделе «Параметры расчета» установлен переключатель «Вручную».

  4. Щелкните ОК.

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

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

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

Sub CalcBook()

Dim wks As Worksheet     Application.Calculation = xlManual     For Each wks In ActiveWorkbook.Worksheets         wks.Calculate     Next     Set wks = Nothing End Sub

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

Sub CalcWhat()

Dim iAnsure As Integer

Application.Calculation = xlManual     iAnsure = InputBox("1 = Calculate A Used Range" _       & vbCrLf & _       "2 = Calculate This Worksheet" _       & vbCrLf & _       "3 = Calculate This Workbook" _       & vbCrLf & _       "4 = Calculate All Workbooks in Memory" _       & vbCrLf & vbCrLf & _       "Input Your Selection Number From Above" _       & vbCrLf & "Then Click OK", _       "Calculate What?", "Input Number Please", _       5000, 5000)



Select Case iAnsure         Case 1 'Range Only             Selection.Calculate         Case 2 'Worksheet Only             ActiveSheet.Calculate         Case 3 'Workbook Only             For Each wks In ActiveWorkbook.Worksheets                 wks.Calculate             Next         Case 4 'All Open Workbooks             Application.CalculateFull         End     End Select End Sub

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

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (6752) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Calculating_Only_the_Active_Workbook [Расчет только активной книги].