Excel for Microsoft 365 Systematically Strips aca="false" Formula Attribute on Save — Causing Silent Data Loss in .xlsm Workbooks

Maarten 0 Reputatiepunten
2026-05-05T13:23:51.13+00:00

I am writing to formally report a reproducible and destructive bug in Microsoft Excel for Microsoft 365 that causes .xlsm workbooks to become permanently corrupted after every save operation. The bug is fully reproducible from a minimal test case constructed from scratch, as described below. No proprietary files are attached or referenced.

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

BUG IDENTITY

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

Product:   Microsoft Excel for Microsoft 365 / Excel 2021 / Excel 2024

Builds:    All builds with calcId=191029 (introduced with Excel 2021)

Platform:  Windows 10 / Windows 11, 64-bit

Format:    .xlsm (macro-enabled workbook, OOXML / ISO 29500)

Not affected: Excel 2019 and earlier; LibreOffice Calc (any version)

 

Error message produced on every open after save:

 

  "Validation and repair were performed at file level.

   Certain parts of this workbook may have been restored or removed.

   Removed Records: Cell information from /xl/worksheets/sheet3.xml"

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ROOT CAUSE

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

The OOXML specification (ISO/IEC 29500-1) defines the aca attribute on the

<f> (formula) element as the "Alternate Content Acknowledgement" flag.

When set to aca="false", it signals that the formula has been explicitly

reviewed for compatibility with alternate content markup.

 

Expected behaviour (per ISO/IEC 29500):

  Excel should preserve the aca attribute unchanged on save.

 

Actual behaviour in Excel for Microsoft 365:

  On every save, Excel strips aca="false" from ALL <f> tags across ALL

  worksheet XML files. On subsequent open, Excel's recovery engine

  treats the now-attribute-less formula cells as structurally invalid

  and removes them from the workbook without warning.

 

Two additional problems occur on every save:

  1. Excel inserts a calcChain.xml file that was not previously present.

  2. On the next open, Excel flags the inserted calcChain.xml as corrupt

     and removes it — leaving the workbook in a degraded state.

 

This creates a silent destruction cycle: save → strip → remove → data loss.

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

MINIMAL REPRODUCTION STEPS

(no proprietary files required)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

Step 1. Create a new .xlsm workbook with at least three sheets.

 

Step 2. In sheet 3 (the sheet whose XML will be written to

        xl/worksheets/sheet3.xml), enter any formula in cell B5,

        for example:  =A1+A2

 

Step 3. Save and close the workbook.

 

Step 4. Open the .xlsm as a ZIP archive (rename to .zip, or use

        any ZIP tool). Open xl/worksheets/sheet3.xml and manually

        add aca="false" to the <f> tag so it reads:

 

          <f aca="false">A1+A2</f>

 

        Save the XML and repack as .xlsm.

 

Step 5. Open the repacked .xlsm in Excel for Microsoft 365.

        Verify cell B5 is present and shows the formula result.

 

Step 6. Press Ctrl+S. Close the workbook.

 

Step 7. Reopen the workbook.

 

RESULT: Excel displays the recovery log:

  "Removed Records: Cell information from /xl/worksheets/sheet3.xml"

  Cell B5 is gone.

 

Step 8. Inspect xl/worksheets/sheet3.xml in the saved file.

        Confirm that aca="false" has been removed from all <f> tags.

 

This sequence is 100% reproducible on every save in Excel 365 / 2021 / 2024.

The same sequence in LibreOffice Calc produces no error; aca="false" is

fully preserved.

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

QUANTIFIED IMPACT (from a real production workbook)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

In the affected workbook type I am working with:

  • 35 worksheets

  • 4,768 formula cells carrying aca="false"

  • After one save by Excel 365: 0 formulas retain aca="false"

  • calcChain.xml: absent before save, injected by Excel, flagged

    as corrupt on next open

 

These numbers are verifiable by any party from a self-constructed

test file; no proprietary data is needed.

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

STANDARD VIOLATED

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

ISO/IEC 29500-1:2016, §18.3.1.40 — the <f> element and its aca attribute:

  "aca (Alternate Content Acknowledgement): Specifies that the application

   has acknowledged this formula's alternate content."

 

Stripping this attribute on save is a violation of the standard that

Microsoft itself co-authored. The attribute is not deprecated in any

published revision of ISO/IEC 29500.

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

KNOWN WORKAROUNDS (all inadequate)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

• Manually re-injecting aca="false" after each save (requires ZIP/XML

  tooling; not viable for end users)

• Saving as .xlsx instead of .xlsm (disables VBA/macro functionality)

• Using LibreOffice Calc for all save operations (removes Excel features)

• Registry key ForceVBALoadFromSource = 1 (addresses VBA compile

  corruption but does NOT fix the aca stripping bug)

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

REQUESTED ACTIONS

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

  1. Confirm acknowledgement of this bug in the Microsoft 365 known

   issues list or Tech Community.

  1. Preserve the aca attribute on all <f> tags when saving .xlsm files,

   in accordance with ISO/IEC 29500.

  1. Cease injecting calcChain.xml into workbooks that did not originally

   contain it, or ensure it remains valid across open/save cycles.

  1. Issue a fix via the standard Microsoft 365 monthly update channel.
  2. Apply the same fix retrospectively to Excel 2021 and Excel 2024

   perpetual-licence builds.

 

I am available to assist with reproduction on a clean test environment

using only files I construct myself. I am not in a position to share

proprietary workbooks.

Microsoft 365 en Office | Excel | Overige | Windows
0 opmerkingen Geen opmerkingen

2 antwoorden

Sorteren op: Meest nuttig
  1. Maarten 0 Reputatiepunten
    2026-05-06T10:31:33.94+00:00

    Het antwoord voegt niets toe: is eerder al vastgesteld en dus bij mij bekend (ga naar Excel 2019 of doe "open source"). Saillant is dat niet alleen Excel 2024 maar ook Excel 2021 hetzelfde probleem heeft en dus jaren bekend is en niet opgelost is. Terwijl Microsoft ISO/IEC 29500 aanhoudt en dus niet doet wat het beloofd: haar eigen standaarden inhouden. En de work arounds zijn eerder genoemd:

    • Manually re-injecting aca="false" after each save (requires ZIP/XML   tooling; not viable for end users)

    • Saving as .xlsx instead of .xlsm (disables VBA/macro functionality)

    • Using LibreOffice Calc for all save operations (removes Excel features)

    • Registry key ForceVBALoadFromSource = 1 (addresses VBA compile   corruption but does NOT fix the aca stripping bug)

    Was dit antwoord nuttig?


  2. Kai-H 28,245 Reputatiepunten Extern personeel Microsoft Moderator
    2026-05-06T07:32:10.06+00:00

    (Please note that this is Dutch Q&A Forum, any threads should be posted in Dutch. However, I will still provide an answer in English based on your initial response.)

    Hi, Maarten

    This looks more like Excel rewriting the workbook’s internal XML during save, rather than a normal user-side file corruption issue. If Excel removes formula-related XML attributes and then “repairs” the file on the next open, the repair process may delete the affected cells instead of fixing them.

    Here are some suggestions you can try:

    First, stop saving the original file in the affected Excel version. Keep a read-only backup and test only on copies. If the workbook still needs macros, it is recommended that you save edits using Excel 2019 or LibreOffice Calc for now, since saving again in Excel 365/2021/2024 may repeat the damage.

    Also try disabling AutoSave and avoid opening/saving the file directly from OneDrive or SharePoint while testing. If the file is already damaged, restore a previous version if available, or use Open and Repair, then choose Extract Data if Repair removes formulas.

    For reporting, you should include the minimal test file, Excel build number, recovery log, and before/after XML comparison in the Feedback Portal. This will help the backend team to get a grasp of the current situation and come up with a fix soon in the future.

    Thank you for your patience in reading, I hope this information has been helpful to you. 


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment."    

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen

Uw antwoord

Antwoorden kunnen worden gemarkeerd als 'Geaccepteerd' door de auteur van de vraag en 'Aanbevolen' door moderators, zodat gebruikers het antwoord van de auteur kunnen weten.