Odzyskiwanie uszkodzonego pliku xlsm

Od jakiegoś czasu obserwuje problem, który dotyczy plików Excel z rozszerzeniem .xlsm, a więc tych przechowujących makra. Ciężko określić powód, ale z jakichś względów, pliki z dnia na dzień tracą swoją użyteczność. Zostają w jakiś sposób uszkodzone i nie jesteśmy w stanie dalej na nich pracować (co jest szczególnie bolesne gdy nie mamy aktualnego backupa naszego skoroszytu). Otwarcie takiego pliku skutkuje zawieszeniem i wyłączeniem całej aplikacji Excel (wszystkich innych już otwartych skoroszytów). Spotkałem się także z przypadkami gdy po otwarciu takiego zepsutego skoroszytu pojawia się okno z informacją „Can’t find project or library”. Poniżej opisuję proces pozwalający na odzyskiwanie uszkodzonego pliku Excel w formacie xlsm.

Skutek kliknięcia w „Ok” jest identyczny jak wcześniej – cała sesja Excela zostaje zamknięta. Jak podaje oficjalna strona Microsoftu komunikat ten pojawia się gdy w referencjach edytora VBA brakuje nam niektórych bibliotek. Te, których brakuje widzimy z przedrostkiem „MISSING”. Problem w tym, że w żadnym z moich dotychczasowych przypadków, nie spotkałem się z wystąpieniem wspomnianego „MISSING”.

Co zatem zrobić aby odzyskać taki niedziałający plik i zaoszczędzić sobie godziny pracy nad jego przygotowaniem od nowa? Rozwiązanie jakie przyszło mi do głowy okazuje się szybkie, banalnie proste oraz w 100% skuteczne. Jeszcze nie zdarzyło mi się abym nie odzyskał jakiegoś skoroszytu korzystając z tej metody.

Jak przeprowadzić odzyskiwanie uszkodzonego pliku xlsm?

Przejdźmy do rzeczy. Odzyskiwanie uszkodzonego pliku Excel zaczynamy od zrobienia kopii naszego xlsm w innej lokalizacji i jej otwarcia. Kopia nie powinna zawieszać naszego Excela. Jeśli nic nie zmienialiśmy w domyślnych ustawieniach bezpieczeństwa makr to widzimy żółty pasek na górze arkusza z informacją, że makra zostały wyłączone.

Kliknięcie w przycisk „Włącz zawartość” poskutkuje włączeniem makr i ponownym zawieszeniem pliku. Nic nie klikamy i przechodzimy do edytora VBA, najszybciej skrótem Alt + F11. W oknie VBAProject odszukujemy moduły naszego uszkodzonego pliku. Wszystkie z nich eksportujemy do osobnych plików .bas wybierając polecenie „Export File…” dostępne po kliknięciu prawym przyciskiem myszy na moduł.

Następnie zapisujemy nasz skoroszyt jako plik .xlsx – czyli standardowy plik Excel bez obsługi makr. Pojawi się okno jak poniżej ostrzegające przed utratą projektu VB. W tym wypadku zależy nam na utracie i klikamy „Tak”.

Otwieramy utworzony plik .xlsx i przechodzimy do edytora VBA (Alt + F11). Po kliknięciu prawym przyciskiem myszy w obszarze VBAProject wybieramy opcję „Import File…” i dodajemy wszystkie uprzednio wyeksportowane moduły.

Zapisujemy skoroszyt jako obsługujący makra czyli z rozszerzeniem .xlsm i Voilà! Bez utraty danych właśnie zakończyliśmy odzyskiwanie naszego uszkodzonego pliku Excel w formacie xlsm. Jeśli w skoroszycie mieliśmy jakieś przyciski wywołujące makra to one również będą działać jak przed awarią. Zaoszczędziliśmy nerwy i godziny dodatkowej pracy potrzebnej do utworzenia pliku od nowa.



1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (1 głosów, średnia: 5,00 z 5)
Loading...


Powiązane