Расчет только активной книги (Microsoft Excel)
Линда спросила, есть ли способ рассчитать только активную книгу.
Когда пересчет выполняется в Excel, он пересчитывает все открытые книги, и если это очень большие книги, на повторный расчет может потребоваться более пятнадцати минут. Если она сможет ограничить перерасчет, то процесс, очевидно, будет идти быстрее.
К сожалению, нет прямого метода, чтобы просто вычислить конкретную книгу. Однако при желании вы можете рассчитать только активный рабочий лист. Сначала установите ручной режим пересчета, выполнив следующие действия:
-
Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку «Office», а затем нажмите «Параметры Excel. В Excel 2010 и более поздних версиях откройте вкладку« Файл »на ленте, а затем нажмите« Параметры ».)
-
Щелкните область формул в левой части диалогового окна. (См. Рис. 1.)
-
Убедитесь, что в диалоговом окне в разделе «Параметры расчета» установлен переключатель «Вручную».
-
Щелкните ОК.
Теперь ваша рабочая книга (фактически, все открытые книги) будет пересчитана только тогда, когда вы нажмете 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 [Расчет только активной книги]
.