Sistava

How to Automate Excel Reports on a Schedule

How-to — — by Mahmoud Zalt

Make an Excel report refresh and send itself on a schedule with Office Scripts and Power Automate, and see where the automation genuinely stops.

There are two very different things people mean by an automated Excel report. One is a workbook that rebuilds itself when you press refresh. The other is a report that lands in somebody's inbox on Monday at nine whether or not you remembered. Most guides solve the first and quietly leave you doing the second by hand.

This guide is about the second one. It assumes your workbook already refreshes cleanly, and deals with the harder question of how it runs, and reaches people, without a human in the loop. That question has a specific answer in Microsoft's stack, and one important limitation worth knowing before you promise anyone anything.

Why will Excel not refresh a file that nobody has open?

Because Excel's own refresh timer belongs to the application, not to the file. In Connection Properties, on the Usage tab under Refresh control, you get a Refresh every checkbox with an interval in minutes, plus Refresh data when opening the file. Both of those require a running copy of Excel with the workbook open in it.

So a file sitting closed in OneDrive on a Sunday night will not update itself, no matter what interval you set. This is the single most common reason people think their Excel automation is broken. It is not broken, it is doing exactly what it says, which is refreshing while open.

Where the schedule livesRuns with the file closedBest for
Connection Properties, Refresh every N minutesNoA workbook someone keeps open all day on a shared screen
Connection Properties, Refresh data when opening the fileNoMaking sure a reader never sees stale numbers
A Power Automate scheduled cloud flowYesA report that must exist before anyone asks for it
Windows Task Scheduler running a scriptYes, if that machine is onDesktop-only setups with legacy macros

How do you schedule an Excel report properly?

Record your repeated Excel actions as an Office Script, then call that script from a scheduled cloud flow in Power Automate and attach the file to an email in the same flow. The script owns what happens inside the workbook. The flow owns when it happens and who receives it. Keeping those two jobs separate is what makes the whole thing durable.

Setting up a scheduled Excel report

  1. Store the workbook in OneDrive for Business or SharePoint — Office Scripts requires OneDrive for Business, and a cloud flow can only reach a file that lives in the cloud. A workbook on your desktop is invisible to all of this.
  2. Record the finishing ritual as an Office Script — Open the Automate tab, start the action recorder, and do the things you always do at the end: refresh, sort, widen columns, hide the working sheet, set the print area. Stop and save. There is also a Copy as code button if you want the steps without saving the whole script.
  3. Run it once by hand and check the output — Scripts replay on other worksheets and workbooks, which is the point, but it also means a hidden assumption about sheet names will follow you into production. Catch that now, not on a Monday.
  4. Build a scheduled cloud flow in Power Automate — Start with the recurrence trigger, set your day and time, and add the Excel Online action that runs a script. Microsoft's documented path for scheduling scripts is a flow, not the Excel interface.
  5. Add the delivery step in the same flow — Get file content, then send an email with the workbook attached. Put the summary in the body of the message. An attachment nobody opens is not a delivered report.
  6. Add one failure alert — Configure the flow to notify you when a run fails. Without it, the first thing you learn about a broken report is somebody asking why they did not get it.

Check your licence before you plan around this. Office Scripts needs Excel on the web, Excel for Windows version 2210 or higher, or Excel for Mac, plus OneDrive for Business and a commercial or educational Microsoft 365 licence. Running scripts inside Power Automate needs a business licence, and Microsoft notes that Office 365 Enterprise E1 and F3 can run scripts through Power Automate without getting the Power Automate integrations directly in Excel.

One small thing that wastes a surprising amount of time: if the Automate tab is missing in Excel on the web, Microsoft's guidance is to check that third-party cookies are enabled in your browser. People reinstall things over this. It is usually a cookie setting.

Once the flow runs, the report arrives on time, every time, and something slightly deflating happens. The open rate does not move. You automated the delivery of a document whose first screen still asks the reader to do all the interpreting, and that was never the bit that made it hard to read.

Does a scheduled spreadsheet actually help anyone?

Only if it answers the two questions people open a report to answer. Are we on track, and what went wrong that I have not already heard about. The answer and the exception. Everything else in the file is evidence, and evidence is only consulted when one of those two surprises the reader.

Watch someone read a report you sent. They scan for a number they recognise, compare it to the one in their head, and either relax or frown. That takes about four seconds. Forty rows and nine charts is what they have to wade through to get those four seconds, and it is why so many reports go unopened by week six.

So the finished form of this job is three sentences in the body of the email, with the workbook attached underneath for anyone who wants to check the maths. A flow can produce and send the attachment on a timer. It cannot write the three sentences, because writing them means knowing what normal looks like and noticing when this week is not.

That last gap is the one we built for. At Sistava you hire an AI Employee, connect the same sources the workbook reads, and describe in plain English what a good week looks like. It assembles the numbers on your schedule and writes the short version at the top: what moved, what broke, what needs a decision. The spreadsheet still exists, it just stops being the thing you send.

What scheduled Excel reporting will not do

A schedule is an amplifier. It makes a good report reliable and a bad report relentless. These four limits are worth checking before you spend an afternoon on the setup, because none of them are fixed by a better flow.

On effort: the first scheduled report takes an afternoon, most of it spent discovering your source data is messier than you thought. The second takes an hour because you reuse the pattern. If setup is the part you keep postponing, describing the report in a conversation to an AI Employee at Sistava is the shortcut, since the wiring happens by asking rather than by building.

FAQ

Can an Excel file refresh itself when it is closed?

Not on Excel's own timer. The Refresh every setting and Refresh data when opening the file both live in Connection Properties and require the workbook to be open in a running copy of Excel. To update a file nobody has opened, put the schedule in a Power Automate cloud flow, which runs in the cloud independently of your machine.

Why can I not find Script scheduling in the Automate tab?

Microsoft's documentation states that script scheduling is temporarily disabled within Office Scripts. Scripts already scheduled keep running, and the recommended path in the meantime is to create a Power Automate flow and schedule the script from there.

Do I need a paid Microsoft 365 plan for this?

Yes. Office Scripts requires a commercial or educational Microsoft 365 licence plus OneDrive for Business, and either Excel on the web, Excel for Windows version 2210 or higher, or Excel for Mac. To run scripts inside Power Automate you need a business licence. Microsoft notes that Office 365 Enterprise E1 and F3 can run scripts through Power Automate but do not get the Power Automate integrations directly inside Excel.

Should I use an Office Script or a VBA macro?

Use an Office Script for anything new that needs to run on a schedule, because a script is stored in OneDrive, runs in Excel on the web and can be called from a flow. VBA still works well on desktop Excel and is worth keeping for workbooks that already use it, but it does not run in Excel on the web and cannot be triggered by a cloud flow.

How do I know when a scheduled report fails?

Configure a failure notification on the flow itself rather than trusting yourself to notice. The realistic failure mode is a source file that arrives late or with a changed column name, so the run either errors or produces something empty. Both are worth an alert, because an empty report that sends successfully is the worst outcome.

Is it better to schedule the file or schedule a message?

Schedule a message with the file attached. A reader who has to open an attachment to learn whether anything is wrong will eventually stop opening it. Put the answer and the exception in the body of the email and let the workbook be the evidence underneath.

Sources