logo
search
VBA & Macro Problems

How to Schedule Daily Automatic Recalculation in Excel Without Changing Data

Maira MehtabMaira Mehtab Sep 27, 2026 869 views

Question details

The user wants to automatically trigger a daily recalculation of an Excel workbook to update data or formulas without manually editing any business data.

Product
Excel
Device & OS
Windows
Scenario
Automating daily spreadsheet formula refreshes for dashboards, time-sensitive data, or reporting without user intervention.
Observed behavior
Formulas need a recalculation trigger to reflect current data, which currently requires manual intervention or data modification.
Before you start

Verify your Windows power settings to ensure your computer is either kept awake or configured to wake from sleep mode at the scheduled time, as hibernation will prevent automated tasks from running.

Solution 1Recommended

Automate Recalculation Using VBA and Windows Task Scheduler

Create a simple VBA script to trigger calculation upon opening the file, and schedule it to run daily using the Windows Task Scheduler.

This method utilizes a built-in macro command to refresh your entire workbook. Combined with Windows Task Scheduler, the file will automatically open and execute the calculation command at your designated time.

1
Create the VBA Recalculation Macro

Open your workbook in Excel, press ALT + F11 to open the VBA Editor. Double-click 'ThisWorkbook' in the Project Explorer and enter the code: Private Sub Workbook_Open() Application.Calculate End Sub.

2
Save as a Macro-Enabled Workbook

Save your file as an Excel Macro-Enabled Workbook (.xlsm) so the VBA script is preserved and allowed to run when the file opens.

3
Set Up Windows Task Scheduler

Press the Windows key, search for 'Task Scheduler', and open it. Click 'Create Basic Task' in the right-hand panel and give it a name like 'Daily Excel Recalc'.

4
Configure the Daily Trigger

Set the trigger to 'Daily', choose the specific time you want the recalculation to happen, and proceed to the 'Action' screen.

5
Link to Your Workbook

Select 'Start a program'. In the Program/script box, type 'excel.exe'. In the 'Add arguments' field, enter the full file path of your .xlsm workbook wrapped in quotation marks. Click Finish.

Task Scheduler Wake Conditions: In Task Scheduler, right-click your new task, select Properties, go to the Conditions tab, and ensure 'Wake the computer to run this task' is checked.
Advanced Spreadsheet Automation

Automate Your Workbooks with WPS Spreadsheet

WPS Spreadsheet provides robust support for VBA macros, allowing you to easily run scheduled recalculations and automate your daily workflows just as you would in Microsoft Excel.

  1. 1. Install WPS Office: Download and install WPS Office, which includes WPS Spreadsheet.
  2. 2. Enable the Developer Tab: Open your workbook, navigate to the Options menu, and enable the Developer tab to access the built-in VBA Editor.
  3. 3. Implement the Macro: Use the VBA Editor to insert the Application.Calculate script on workbook open, saving your automated file seamlessly.
Fully compatible with Microsoft Excel (.xlsx and .xlsm) formatsComprehensive VBA and macro support for daily automation scriptsLightweight, fast calculation engine that doesn't consume excessive system resourcesFree to download with an intuitive, familiar interface
QA img-9

Frequently Asked Questions

Why didn't my scheduled Excel recalculation run overnight?

If your Windows computer goes to Sleep or Hibernate mode, scheduled actions cannot run. You must either leave the computer awake or check 'Wake the computer to run this task' in the Task Scheduler task properties.

Do I need to save my file in a specific format for VBA recalculation?

Yes. Whenever you add a VBA macro (such as an automatic recalculation script upon opening), you must save your file as an Excel Macro-Enabled Workbook (.xlsm). If saved as a standard .xlsx, the macro will be removed.

Can I calculate just one specific worksheet instead of the entire workbook?

Yes. In your VBA code, replace 'Application.Calculate' with 'Worksheets("YourSheetName").Calculate'. This targets the recalculation process exclusively to the designated sheet.