Ogólnie jeśli chcesz Twoje makro ruszy arkusz, czy też dane w komórkach, to również wyczyści bufor cofania i nie będziesz mógł cofnąć, ani czynności, które wykonało makro, ani czynności, które wcześniej wykonywałeś — Ctrl + Z nie zadziała.
Jeśli Twoje makro nie rusza arkusza, np: wyświetla komunikat za pomocą funkcji Msgbox, to bufor cofania nie jest czyszczony i dalej możesz cofnąć swoje wcześniejsze czynności za pomocą skrótu klawiszowe.
Niektórzy chcieliby móc cofać swoje makra, dlatego został stworzony kod, który wykorzystuje pewną sztuczkę, a mianowicie w swoim makrze na samym jego początku dodajesz linijkę kodu, która zapisuje Twój plik:
ActiveWorkbook.Save
Następnie jeśli Twoje makro zadziałało niepoprawnie uruchamiasz makro, które powinieneś przechowywać w innym pliku np: skoroszycie makr osobistych, które pobiera nazwę Twojego pliku (aktywnego pliku), zamyka go bez zapisywania, a następnie ponownie uruchamia:
Sub Cofanie() Dim AktualnyArkusz As String 'Zapisujemy nazwę aktywnego skoroszytu/pliku AktualnyArkusz = ActiveWorkbook.FullName 'zamykamy go bez zapisywania zmian ActiveWorkbook.Close SaveChanges:=False 'ponownie go otwieramy Workbooks.Open Filename:=AktualnyArkusz End Sub
Czyli symuluje to co musiałbyś zrobić ręcznie, żeby odzyskać swoje dane 😉
Pozdrawiam
Adam Kopeć
Miłośnik Excela