# How to Automate Excel Reports on a Schedule *How-to — 2026-11-01 — 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. **Short answer.** **Excel can refresh a report on a timer only while the workbook is open, so a genuinely scheduled report needs the schedule to live outside the file, in Power Automate.** You record the finishing steps as an Office Script, then build a scheduled cloud flow that runs the script and emails the result. That covers refresh and delivery. It does not cover the sentence at the top telling the reader what changed. 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 lives | Runs with the file closed | Best for | |---|---|---| | Connection Properties, Refresh every N minutes | No | A workbook someone keeps open all day on a shared screen | | Connection Properties, Refresh data when opening the file | No | Making sure a reader never sees stale numbers | | A Power Automate scheduled cloud flow | Yes | A report that must exist before anyone asks for it | | Windows Task Scheduler running a script | Yes, if that machine is on | Desktop-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. **The Script scheduling panel inside Excel is switched off.** Microsoft's documentation states that script scheduling is temporarily disabled within Office Scripts, that scripts already scheduled continue to run, and that in the interim you should use Power Automate to create a flow and schedule your scripts there. If you are following a tutorial that tells you to open a Script scheduling section in the code editor, that is why you cannot find it. The capability moved, it did not disappear. 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](/hire-ai-employees) 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. - **It will not notice a wrong number. **A flow that picks up a corrupted export will format it perfectly and send it on time. Add a row count and one impossible-value check inside the script. - **It will not survive a renamed column silently. **When a source system changes shape, the query step that referenced the old name fails. That is the good outcome, and someone still has to go and fix it. - **It will not write the commentary. **The outage on Wednesday, the client who paused, the reason a region dipped, none of that lives in the data. - **It will not create a reader. **If the report goes to eleven people and two open it, a schedule means you now send an ignored report with perfect punctuality. 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](/signup) 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. **About this guide.** The Excel, Office Scripts and Power Automate behaviour described here comes from Microsoft's own published documentation, checked on 17 August 2026. Sistava is not affiliated with Microsoft. Interfaces, licence requirements and feature availability change, so confirm the current steps in Microsoft's documentation before you rely on them. ## Sources - [Microsoft Learn, ](https://learn.microsoft.com/en-us/office/dev/scripts/overview/excel)Office Scripts in Excel - [Microsoft Learn, ](https://learn.microsoft.com/en-us/office/dev/scripts/testing/platform-limits)Platform limits, requirements, and error messages for Office Scripts - [Microsoft Learn, ](https://learn.microsoft.com/en-us/office/dev/scripts/develop/power-automate-integration)Run Office Scripts with Power Automate - [Microsoft Support, ](https://support.microsoft.com/en-us/office/connection-properties-9d3599a9-e9b3-461d-99b2-c5505ddae6e0)Connection properties - [Microsoft Support, ](https://support.microsoft.com/en-us/excel/refresh-an-external-data-connection-in-excel)Refresh an external data connection in Excel **Tags:** excel, reporting, automation, office-scripts, power-automate