Excel. Отмена изменений только текущего файла. Проблема общего лога

Дано: Excel 2013 (или 2016), открыто несколько excel-файлов. Сделаны различные изменения в разных файлах.
Задача: нужно отменить сделанные изменения только в одном из файлов.
Проблема: Excel ведет общий лог изменений во всех открытых файлах, поэтому функция отмены действия будет приводить к откату изменений во всех этих файлах.
Например, открыты файлы 1.xlsx и 2.xlsx.
В файле 1.xlsx Вы ввели в ячейку значение "Общий итог по факультету", сделали еще какие-то действия с таблицей, затем ввели еще данные в другую ячейку, например, число "15".
Затем переключились на файл 2.xlsx и в какую-то ячейку тоже ввели данные, например, "Иванов Петр".
Замет снова вернулись к файлу 1.xlsx и отредактировали какую-то ячейку.
Теперь Вы решили отменить все действия, сделанные в книге 1.xlsx, вплоть до ввода числа 15 (включая саму эту операцию).
Вы нажимаете "Отменить" и видите, что нельзя отменить ввод числа 15, при этом не удалив также ввод "Иванов Петр" в другом файле:


Нельзя удалять действия выборочно, только подряд, но из-за того, что журнал действий у открытых файлов общий, можно случайно отменить изменения в другом файле и не заметить этого.
Хотелось бы, чтобы журнал действий и их отмена была только по текущему файлу.

Варианты решений:

Такое поведение журнала происходит потому, что файлы открываются в одном экземпляре  Excel (инстансе, instance). Необходимо добиться открытия файлов в разных экземплярах программы.

Как вариант, прежде чем, открыть нужный файл, сначала открывать новый экземпляр Excel (подходит тем, у кого нет административных прав в системе).

Как открыть отдельный экземпляр (instance) Excel?

  1. Нажать и удерживать ALT, щелкнуть правой клавишей на ярлыке Excel на панели задач, выбрать запуск Excel 2013. Если ALT всё еще нажат, то появится окно, где Вас спросят, действительно ли Вы хотите открыть новый экземпляр Excel - соглашаемся.
  2. Можно создать ярлык, который будет сразу открывать Excel в новом инстансе. Создаем ярлык, в качестве запускного файла указываем excel.exe (для версии 2013/2016 от располагается по пути C:\Program Files (x86)\Microsoft Office\Office16\, найдите, где данный файл в Вашей системе), затем укажите параметр запуска "/x":


После открытия отдельного экземпляра Excel открываем нужный файл через меню Файл - Открыть - выбираем файл. Теперь журнал действий будет вестись только по этому файлу, не затрагивая другие открытые файлы.

Еще вариант - это добавить пункт в контекстное меню (вызываемое по правой клавише мыши), чтобы выбирать его при открытии файла Excel.
Для этого ранее созданный ярлык скопируйте в папку
%appdata%\Microsoft\Windows\SendTo


В итоге получим в блоке меню SendTo (Отправить) нужный пункт.


Если выше указанные способы кажутся хлопотными и хотелось бы при открытии файла, например, двойным щелчком, чтобы он сразу открывался в новом экземпляре Excel, то это можно сделать.

Чтобы реализовать такое действие, Вам потребуются административные права в системе, т.к. нужно будет изменить некоторые данные в реестре.

Переходим в следующую ветку реестра:
HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command


Увидим примерно такую картину:


Что нужно сделать:

  1. Меняем значение ключа "Default":
    вместо
    "C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /dde
    указываем
    "C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE" /e "%1"
    (если после завершения не получится, то попробуйте убрать "/e")

  1. Ключ "command" переименовываем в "command2".
  2. Папку "ddeexec" переименовываем в "ddeexec2"


Вот, что получится в итоге:


После редактирования реестра - перезагружаемся. Теперь все открываемые в Excel файлы будут иметь собственный журнал событий и отмена выполненных действий не повлияет на другие открытые файлы.

(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

3 комментария :