لیندا پرسید آیا راهی برای محاسبه فقط کتاب کار فعال وجود دارد؟ هنگامی که یک recalc توسط اکسل انجام میشود، همه کتابهای کاری باز او را دوباره محاسبه میکند، و اگر آنها کتابهای کاری بسیار بزرگ باشند، گاهی اوقات ممکن است بیش از پانزده دقیقه طول بکشد تا دوباره محاسبه شود. اگر او بتواند آنچه را که مجدداً محاسبه میشود محدود کند، آشکارا روند سریعتر اجرا میشود.
متأسفانه، هیچ روش مستقیمی برای محاسبه یک کتاب کار خاص وجود ندارد. با این حال، در صورت تمایل می توانید فقط کاربرگ فعال را محاسبه کنید. ابتدا با دنبال کردن مراحل زیر، حالت محاسبه مجدد را روی دستی تنظیم کنید:

شکل 1. گزینه های Formulas در کادر محاوره ای Excel Options.
- کادر محاوره ای Excel Options را نمایش دهید. (در اکسل 2007 روی دکمه آفیس کلیک کنید و سپس روی گزینههای Excel کلیک کنید. در اکسل 2010 و نسخههای بعدی، تب File را در نوار نمایش داده و سپس روی گزینهها کلیک کنید.)
- روی قسمت Formulas در سمت چپ کادر محاوره ای کلیک کنید. (شکل 1 را ببینید.)
- در بخش Calculation Options در کادر محاوره ای، مطمئن شوید که دکمه رادیویی Manual انتخاب شده است.
- روی OK کلیک کنید.
اکنون تنها زمانی که کتاب کار شما (در واقع، همه کتابهای کاری باز شما) دوباره محاسبه میشود، زمانی است که F9 را فشار میدهید . اگر می خواهید فقط کاربرگ فعلی را دوباره محاسبه کنید، Shift+F9 را فشار دهید .
اکسل همچنین توابع ماکرو را ارائه می دهد که به شما امکان می دهد هر یک از این سه کار را انجام دهید: محاسبه تمام کتاب های باز، محاسبه یک کاربرگ خاص در یک کتاب کار، یا محاسبه محدوده مشخصی از سلول ها در یک کاربرگ. با استفاده از این دانش، میتوانید یک ماکرو ایجاد کنید که از طریق تمام کاربرگهای یک کتاب کار حلقه زده و هر یک از آنها را دوباره محاسبه کند.
ماکرو زیر حالت محاسبه را روی دستی تنظیم میکند (بنابراین کتابهای کار دیگر محاسبه نمیشوند) و سپس هر صفحه از کتاب کار فعال را حلقه زده و محاسبه میکند.
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 را وارد می کند، نوع مورد نظر محاسبه مجدد انجام می شود.