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!
Honestly I think he's actually FOR separate undo stacks, but he accidentally said AGAINST. Also sarcasm does not translate well to text.
@roy somebody is payed by Microsoft, or at least is bad at sarcasm.
I gave up on this an the many other shortcomings. I switched to LibreOffice. It has had per-sheet undo stacks since the beginning.
Good luck folks. MS doesn't listen or care.
Now you can be confused since I began and ended with opposites. Hint: I voted for this quite a while ago.
There's this thing called sarcasm. I may not have been deft with it, but even poor sarcasm is usually recognized as sarcasm. Perhaps a clearer version would "Hey, MS just solved the single Undo stack issue. They withdrew Excel from the market..."
In any case, in general, I like to try to understand how a thing came to be and to give "props" when due. I think many do. But it doesn't in the least let me live happily with this sad situation.
To be fair to my point, I was pointing out that the single-sheet version of affairs was similar to our world of single but multi-sheet spreadsheets. And that for the last 26 years there's literally no reason on Earth why the shared Undo stack would have been kept.
It sets the sitch in stark terms. A lot of people don't even live 26 years. And this drags on. With no excuse or reason ever presented. Since I haven't sunk to the misery of not thinking on it anymore and just building hatred and resentment, I occasionally speculate. Not asking for forgiveness either. My life will go on with or without this. A part of it will suck, but that's all. And I'll still want individual Undo stacks the whole while. (Sorry, I couldn't fit "whale" into that.)
Roy, to be honest, I actually can't tell if you're for or against separate undo stacks.
But the simple fact is, no one would ever want combined undo stacks. It makes no sense. If I press undo, it's because I want the last change in the currently-focused spreadsheet to be undone. You know, like literally EVERY SINGLE OTHER PROGRAM IN EXISTENCE. If I want to undo something in another spreadsheet I'll go to that spreadsheet and press undo.
No user cares about the history of SDI and MDI. No users cares _why_ it is the way it is. We just want this stupidity fixed.
Rob... my man... MS DID solve this already, made sure each file has its own Undo stack!
It's called (the horrible and monstrous forced shift to the world of) SDI. If you don't fight Excel, it will open a new instance for each spreadsheet and those instances are almost as unaware of each other as Spotify and Quicken are of each other.
Including individual Undo stacks. Oh boy!
Of course, fight progress and open your spreadsheets in ways that open in a single instance and those spreadsheets that are completely separated from each other via SDI (which operates regardless of single instance or multiple Excel instances) are suddenly still joined together via, amongst a few other things, their single, shared, Undo stack.
But you really can have separate Undo stacks if you just open instances willy-nilly.
And oh yes, it surely should be an easily set user preference. Right on the money there!
But it is not by any means a "pro" feature. Even if you just need two spreadsheets open at once for manual work you intend to do in each as required by your job's minute-to-minute needs, you will sooner or later suffer with a single Undo stack. Or suffer from the disconnection between instances of Excel. And there are at least 10 other situations I expect arise very often amongst us all that are nothing pro-like, just average Joe-like.
Admittedly, almost nothing is the end of the world here, usually one can give up his work by closing without saving if needs be. But it SUCKS to lose work for such a simple thing to fix. Sometimes it's a LOT of work, but even still, it's not like a tornado ripping up Xenia. It just sucks though each time you end up in that bind and it should never even be able to occur.
By the way, I think you have the lead on an important "how it came to be": Until about 1993, there was a single sheet per spreadsheet. If one needed multi-sheet functionality, one had to make several, or many, spreadsheets that would work together. Still separate files though. A single instance of Excel-wide Undo stack makes pretty decent sense then, it would actually be enabling for many, though not required. Maybe how we ended up having it so long before it's last need for being went away.
As soon as multi-sheet ("tabbed") spreadsheets could be created, most things settled into single spreadsheets and so a private Undo stack for each multi-sheet spreadsheet would have kept that equivalent functionality without hindering the future.
Yet... here we are, relegated to the "hinderlands..." (sorry, couldn't resist)
> I seriously cannot understand why this isn't the default. Can you imagine if Word had this behavior default?
To be fair, Word documents that need to reference each other in a live manner aren't really a thing. Excel workbooks can — and frequently do — pull data from each other. So having a global undo is something that would be terrible to be without *IF YOU NEED IT*.
But the fact is, it's a pro feature. It's not needed by the vast, vast, vast majority of users.
The behavior should be an easily-set user preference.
Right hand, left hand, neither knowing the other exists.
I'm not sure if I should wish they shared best practices around the company (or had done so, long ago), or if I should be happy to see a monopolist miss a pretty good trick (the sharing of best practices).
Seriously though, as I described in more detail lower down here, close an open workbook and they have no problem whatever identifying the Undo elements registered to that workbook and deleting them from the stack. It's not like you re-open it immediately and they're still available. So they can already identify what goes with what. How hard... oh... yeah, not hard. Must actually be a motivation issue.
(Not really clear why macros have to wipe out the Undo stack either. Never seen a plausible explanation for that.)
I seriously cannot understand why this isn't the default. Can you imagine if Word had this behavior default?
Considering the track record at addressing other issues on this board, I'm not holding my breath on this one despite how useful it would be to the user.
Really do not understand why they are allowing, what I can only guess to be the marketing team, to dictate what their priority task list is (adding a google-like search tool is far less useful than fixing existing problems, yet here we are).
Garrett Fuller commented
This would be magical.
I have a macro that opens 4 different excel spreadsheets for me every morning. I have those 4 open all day, and open others as my day progresses.
Having discrete undo stacks would be incredibly useful.
Hi, would actually prefer this to be an option. i.e. under undo you have a way of selecting to apply undo only on current workbook or across all workbooks.
Posting the 1st half now, so it is in order. Here. Sadly, that will make the halves come backwards in any emails...
Have a SINGLE INSTANCE of Excel open and IN IT create 3 files, A1.xlsx, etc. Make some clear entries, patterned for each one, like 1,1,1 and 2,2,2 and 3,3,3.
Try UNDO. That last 3 goes away, no matter which file you are in AND, unlike described following those links to different places after them, you go to that exact cell in that exact spreadsheet and see what went away. No "hidden" Undo's occur. Yay. BUT you were in A1.xlsx when you hit UNDO and wanted the last thing done there to be undone.
Of course, that did NOT happen and CAN'T happen which is why this Suggestion exists.
Those links are said to make the point that this is programmed in in such a way that it CANNOT be undone, reprogrammed, overridden... it is an aspect of MDI and flat cannot be done any other way. Those poor dears at MS have no physical way to override that behavior so this is an outcome. Choices? Well... no UNDO at all, of course, or SDI and then it never comes up to discuss so problem solved. Whew... no more dirty bathwater, problem solved... hey honey, where's the baby? He was here right before I threw out the dirty bathwater and now I can't find him... solved the dirty bathwater (UNDO) problem though.
In the links, a person mentions that closing one of the contributing files wipes out its contributions to the Undo stack, but leaves the rest. Yeah, that happens, both with the 2016 I have now and the 2010 I have still at home. Another person says no... yeah it wipes out that file's contributions, but only by wiping out the entire stack, all gone, not just some. His point would seem to be the "nothing at all can be done with it in an MDI world." But he is wrong, and so is his point, and also that of anyone else saying so.
You have the above work. Close any of the files, the one with the last changes (so hitting UNDO would have Undone something in IT), saving or not saving first. Try UNDO. It doesn't open that file up and Undo that last thing. Even if you saved it with the changes so that it had something to undo. That file and its contributions to the Undo stack are GONE. Open it, make changes, save and close it, try Undo (it acts on the other files since that one is gone). Well... open it back up. Now:
1) When you closed it, the Undo stack KEPT its contributions until the Excel instance would be closed and now that you have opened it back up it will Undo things exactly as if you never closed it because it can't do anything else.
2) When you closed it, its contributions from the stack were removed. Gone. Never to return. Or at least marked to be permanently ignored. So opening it back up can't reactivate its contributions. They don't exist anymore.
Posting the 2nd half first so it appears after the 1st half, I hope. (It seems I write too many characters sometimes.)
If it is 1), nasty things will happen. Saved material will be subject to being undone. That might be the least of it. Making that impossible might have been the whole point of your saving, closing, and reopening. Nasty, nasty, nasty, on a whole new level from what we have now. But it doesn't happen, not at all. Those things are actually gone, so it is 2), above.
Alrighty... if the actions are removable then they are ignorable. In other words, if in the MDI world, Excel can now ignore the fact of those actions being in the Undo stack and make no use of them, only acting on the items the never closed files contributed (easy to ignore something that doesn't exist any longer, right?), then it can certainly ignore them for other reasons.
YES... for sure there might be reasons you would not want to and the program's guiding lights might have gone with the "hard choice" and made the Undo stack the monster it is today. Sure. Maybe. I know none of us would agree that that is so: about "reasons" and hard choices that is.
However, no matter what they or anyone else says, that is all a lie. It is a lie because it has been said (mainly to avoid the work, I guess) for 25 years now, since computer generally had enough power and a worthwhile Windows version (3+) to do menaingful work on more than one file at a time.So while an off-the-cuff, first time I thought of it remark might be "wrong", going on with it, stubbornly, for 25 years makes it a lie about a month or so into the 25 years.
If the stack can keep track of the spreadsheet the contribution came from (and it can or change cell A3 in A3.xlsx, switch to A1.xlsx and hit UNDO and you would see A3 Undo all right... A3 in spreadsheet A1.xlsx, not in A3.xlsx... it would act relatively because it did NOT know which spreadsheet put that act into the Undo stack... which is clearly and absolutely NOT the case!), then a trivial amount of code can look at a setting you have chosen and decide whether to ignore all contributions from the other spreadsheets and on UNDO in the one you have up (or not, if you set the setting the other way).
Yes, that could seem to lead to issues, but not really since it would be Excel-wide, not spreadsheet by spreadsheet that one made that choice. The other aspect for trouble would be "tree-ing", akin to forward and back in web browsers, and having to deal with the situation in which you have ten things in the history, go back 3 to the 7th, then click something new and it becomes the new #8 while the old #8, #9, and #10 are permanently lost. Same idea.
So NO, FLAT NO, this is NOT NOT NOT a physical impossibility. It just ISN'T. If I can see that, for G*d's sake so can 3,000,000 programmers. And their managers and strategic guiding hands. This CAN be done, and with the same trivial code college kids use to write browsers for a grade one week in some semester's class. It literally is not rocket science. It's TRIVIAL. Period.
NOT doing it is a choice, not a physical law of the universe. A choice. A bad one.
This problem is known for over 15 years, but Microsoft does not care: https://answers.microsoft.com/en-us/msoffice/forum/all/the-undo-button-un-does-a-different-workbook-than/83829bc9-0911-4302-a039-02f3fd1b2544
This old MS Office problem stems from senseless grouping of opened files into one common excel/word process. Check the Task Manager, and open one excel file after another, and then watch what I describe.
I urge Microsoft to finally fix that ancient bug! Here you find detailed descriptions of this bug: https://superuser.com/questions/293044/excel-how-to-undo-in-current-file-only
SEUMAS MACLAREN commented
We need a Workbook-based undo buffer, as we have said, WITH the ability to purge the undo buffer manually, or on a manual save (just like the Accept All Changes and Stop Tracking removes all previous change memory items in Word).
SEUMAS MACLAREN commented
Is there anything new about this issue which was first raised over 6 years ago on other threads? This is a HUGE productivity issue and MUST be prevented from any further drift NOW please. This is a QUALITY issue and relates directly to being able to track version control in Excel - enabling quality controls within a task or a design. We simply have to get it changed. Please. Please STOP adding minor usability innovations like auto-save and concentrate on what matters to power users who pay a lot of money monthly for upgrades that we have no control over. We need proper engineering to address this most fundamental issue. Not bells and whistles.
Most power-users work within multiple workbooks, just as they do with Word, or other apps. Why is Excel deficient: I shall tell you why: There is a lack of standardization and so lack of common architecture for Office applications and things have been allowed to drift at Microsoft. Get it sorted please.
HACK TO COPY BETWEEN INSTANCES AND RETAIN FORMULAS: Find and Replace the "=" with something that appears no where in your workbook eg one of the alt + num pad hard characters. I usually use one of the Greek characters Alt+num pad 234 Ω. Copy paste your sheet or range. Find and replace the Greek character with "=".
Please fix this. I managed to kill a worksheet recently because undo is not by document vs global. I knew that this was a glitch in Excel...too many things going at the same time a mistake was bound to happen, but it should not be this way!
Really, you have us trained to undo by document in Word and Powerpoint, how difficult was it to do the same in Excel? I would much rather lose the functionality of having 2 documents in separate windows and still have undo work correctly.