חישוב אוטומטי (בדרך כלל ברירת המחדל) - לאקסל יש מנוע מתוחכם (לא תמיד מספיק) אשר יודע איזה תאים לחשב מחדש. בכל שינוי בערך של תא, כל התאים שתלויים בו ,התאים שתלויים בהם וכן הלאה, מחושבים באופן אוטומטי. אקסל עושה זאת על ידי בניית עץ חישוב (Calculation Tree/Chain) על כך נפרט בהמשך.
חישוב ידני - (כדי לשנות נלך לכלים/אפשרויות/חישוב) במצב זה, אקסל נותן לך את האופציה לחשב מחדש לפי ראות עיניך, אם ערך בתא כלשהוא ישתנה, אקסל יתן לכך חיווי על ידי הופעת המליה חישוב בשורת המצב, אך לא יחשב לבד. כדי להשתמש במצב זה כאשר יש ברשותך חוברת עבודה ענקית שהחישוב בה איטי ומסורבל.
ישנם מספר מקשי קיצור לחישוב:
F9- חישוב מחדש (Recalculate) - יחשב את כל התאים בחוברת העבודה שדרושים חישוב. SHIFT +F9 - חישוב מחדש של הגיליון הפעיל.
CTRL + ALT +F9 - מחשב מחדש את כל התאים, כולל אלה שאקסל לא חושב שצריך לחשב מחדש.
עץ החישוב (Calculation Tree/Chain) - אקסל בונה עץ חישוב מאחורי כל חוברת עבודה, העץ מגדיר את הקשרים והתלות בין התאים, וכך יודע בכל פעם שתא משתנה - אילו תאים אחרים צריכים להיות מחושבים. אקסל עושה את האופטימיזציה לבד בצורה הטובה ביותר חוץ מכאשר אתם כותבים פונקציות מותאמות אישית. במקרה זה צריך ממש להזהר כי שימוש לא נכון יכול לבלבל את העץ. מומלץ גם כאשר יש שתי פונקציות באותו תא להציב את פונקציית האקסל לפני הפונקצייה המוגדרת אישית. ניתן גם להכריח את אקסל לבנות את עץ החישוב מחדש על ידי לחיצה על CTRL+ALT +SHIFT+F9 כמו כן ניתן להגיד לאקסל להגדיר מספר תאים (או גיליון שלם) כ'מלוכלכים' (Dirty), כלומר זקוקים לחישוב מחדש. ועכשיו, איך זה נראה בVBA :
Application.CalculateFullRebuild
'Perform a full calculation on instance and rebuild the calculation tree
Application.CalculateFull
'Perform a full calculation on instance (force calculation on all cells)
Application.Calculate
'Recalculate all open workbooks in the current instance
ThisWorkbook.Calculate
'Recalculate this workbook
ThisWorkbook.Sheet(1).Calculate
'Recalculate sheet 1
Range("aaa").Calculate
'Recalculate Named range aaa
Range("aaa").Cells.Dirty
'Tells excel that this range needs to be recalculate
* מאמר זה מתייחס לאקסל 2002/2003 בלבד.