Make Undo stacks track per workbook instead of globally
Undo stacks are currently global between all workbooks that are open at a given time, so pressing undo on one workbook might undo a change in a different workbook. As someone who frequently has multiple workbooks open at a time, it would be much more helpful to be able to step through the edits made on each individual workbook.
Thanks again for all the passion on this issue – we hear you and we’ll get someone on the team to dig in to the issue. I’ve seen a few related sub-issues while scanning over the comment section for this one, so we may reach out to a few of you for clarifications. Thanks again for all the votes, and keep them coming for the issues you care about!
OMG, I wasn't aware of this issue before but it's completely ********. Why would you even want this, even if your workbooks are linked?
The worst part is, Excel doesn't even properly change the view to the relevant cell if you're currently in a different workbook, so you may be undoing something without even being aware of it.
@Omid Nikfar and @AB -- opening separate instance of Excel for multiple workbooks was an abomination that is charitably finally fixed. I did this frequently as a work-around, but it's very poor solution. It made copy and pasting formulae between workbooks impossible and it also meant that if you did open in the same session it used the horrible and Windows 3.0-era MDI (Multiple Document Interface), with child windows inside parent windows. This also made it impossible to look at multiple windows at the same time unless you first extended the parent window to be large enough to hold all the child windows, which also covered a lot of other windows you might want to see that could have been visible without the rectangular parent window.
Now Microsoft needs to fix the global-shared Undo, which is still a throwback to the old MDI approach. From my perspective, this is the single most important outstanding feature request.
Oh this would be fantastic. Have to agree with Mark.
Jan Karel Pieterse commented
@AB: One thing that is wrong with that is that as of Excel 2013 it has become quite a bit harder to open separate instances of Excel.
what's wrong with just opening separate instances of excel?
This only applies to multiple workbooks open in the same instance of excel. Which I would only do if the workbooks were talking to each other anyway... Maybe I'm wrong but it seems more a problem of a lack of clarity of use than a bug.
I think it is a HUGE improvement that Excel no longer uses the child windows as it did in the past. Now each workbook opens in its own window but the clipboard is shared. For those who say that you could always open multiple windows -- yes, but each was a separate session completely separated from the others, so you couldn't copy formatted text or ranges of cells between them. Now Excel works like a Word and PowerPoint have for a long time. Much better.
However, now that it works this way, it really highlights the need for also keeping the Undo tied to the workbook, not global, exactly as this request states. Again, this would bring Excel better in line with Word and PowerPoint, which already work that way.
Omid Nikfar commented
I am absolutely aware that a lot of people had the difficulty of all the workbooks opening in one window, and that was all because they did not know that they can open several Windows (i.e. MS Excel) and open different workbooks in each. I personally used this for long and taught whoever asked me. Instead of increasing people's awareness on how to deal with the issue, Microsoft decided to significantly and irreversibly compromise on efficiency.
The Undo button should only effect the spreadsheet window it is at the top of. I have 2 spreadsheets open, I found clicking undo on one was actually changing the other. This is stupid.
For the consistent aggravation this causes to anyone who uses multiple workbooks at a time (which has to be nearly everyone who use Excel), I can't believe this issue hasn't been resolved in the 13 years that people appear to have been complaining about it. This is the first time I went looking for a workaround that I located a page like this, so a lot of the people with the issue probably aren't turning up here to vote. To the best of my knowledge, all the other spreadsheet software lets you use an undo stack in the active workbook without inadvertently touching your other open workbooks... even the free alternatives!
Please please make it so when you undo something it only edits the workbook you are in instead of all open workbooks.
Blair Baker commented
it's been a complaint since 2003, so you can figure from there how low a priority it is
Abbas Abdulla commented
I suggest this to be added to options and user choose how he would like undo/redo works in his excel.
John (and the Excel team),
I know that has to be your formal response, but seriously; there is no way that that a multi-workbook undo stack can be tolerated in a modern UI. We know it, you know it, it's just the truth. Can you imagine the team members for Outlook or Word being able look fellow employees in the eye if their undo stack spanned multiple instances? The pitiful looks they'd get and snide comments they'd hear at the company holiday party would cut like knives.
Excel has been shoe-horned into Office for over a decade and the undo problem is one of the many legacy issues that are the result of starting with such a different product from what Word and PowerPoint were at the time. The difficulty of opening multiple Excel instances at all was possibly the most obvious one (thanks for fixing that!). Want to open a new Excel window while your cursor is in the formula box? Nope. Think the Excel window you just opened shouldn't be burred behind the other instances you have open? Silly.
Please, oh please, may 2016 be the year that Excel is finally rewritten to fit neatly into the Office ecosystem! It's so powerful yet so 1990s clunky at the same time :-/
Gareth Hayter commented
While you're at it, please provide an easy way for add-in developers to hook into the undo stack and preserve the stack when 'safe/handled' macros etc are called, as well as a way to insert their own undo actions into the stack.