Excel 2016 seems to trigger a programmatically added undo level upon saving, which does not happen in earlier versions of Excel (2013, 2010, and 2007). To reproduce this apparent bug, open a new workbook and save it as a macro-enabled workbook (.xlsm file). Paste the following code into the ThisWorkbook module:
Option Explicit
Public WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnUndo "foo", "modTest.Undo"
End Sub
Then, insert a new module named modTest
and paste the following code:
Public Sub Undo()
MsgBox "This is the Excel 2016 bug."
End Sub
Finally, save the workbook and reopen it. Enter any value in any cell to trigger the Application.SheetChange
event. Save the workbook (you may need to do this twice, for some reason), and the message in modTest
will appear.
Can anyone explain what may be going on here, and/or how to work around this problem? If this is indeed a bug, what is the best way to report it to Microsoft?
This code is VBA, but since this problem affects VSTO add-ins written in VB.NET and C#, too, I am including those tags.
We have confirmed via testing and direct communication with MS software engineers and support staff that this bug is fixed in Office builds released late July / early August 2016.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With