2016-03-24 17 views
11

Ten problem będzie brzmieć szeroko i niespecyficznie, ale próbowałem wielu rzeczy i nie wiem, gdzie jeszcze się zwrócić.Program Excel zawiesza się czasami po zamknięciu z lokalizacji sieci wspólnej

Mam projekt Excel VBA - ma setki linii kodu i kilka modułów, więc naprawdę nie mogę opublikować tego wszystkiego. Działa jako szablon - użytkownicy otwierają plik, tworzą kilka zmian w szablonie i zapisują gdzieś kopię. Szablon główny nigdy się nie zmienia.

Wszystko działa świetnie, z tym wyjątkiem, że często zawiesza się, gdy użytkownik zamyka program Excel, informując, że "Program Excel przestał działać". To powoduje awarię wszelkich otwartych plików Excela, co jest dość frustrujące.

Ten błąd występuje tylko wtedy, gdy plik jest otwarty z udostępnionej lokalizacji sieciowej. Nigdy nie doświadczyłem tego działającego lokalnie.

Nie ma wykonywania kodu VBA. Przed zamknięciem zamknij, które może zakłócać działanie. W otwartym skoroszycie ustawiłem to, aby pobrać dwa różne pliki CSV i skopiować z nich dane.

Poszedłem przez każdego modułu i SUB, aby zobaczyć, czy któryś z nich przyczyniają się do katastrofy - ale czasami skoroszyt może ulec awarii po zamknięciu bez uruchomienia dowolnego kodu VBA (poza kodem Workbook.Open)

Ponadto, nigdy nie ulegnie awarii w trybie "Tylko do odczytu" (plik główny jest zawsze tylko do odczytu) - tylko gdy użytkownik zapisał kopię gdzieś, rozpocznie się awaria.

Czy ktoś ma jakieś wskazówki lub pomysły dotyczące dalszego rozwiązywania tego problemu? Pracowałem nad tym na zawsze, wynajmując eksperta, jeśli nie mogę go rozwiązać wkrótce. Dziękuję Ci!

** edycja 4/15 - tylko aktualizacja, wciąż szuka odpowiedzi, jeśli ktoś ma rozwiązanie. Jedyne, co mogę znaleźć w związku z problemem, to odwoływanie się do plików na udostępnionym dysku sieciowym. Czy po zamknięciu istnieje powód, dla którego ktokolwiek może pomyśleć, że może spowodować awarię?

+0

OK, to jest dzikie domysły, ale mogę sobie tylko wyobrazić, że ma coś do zrobienia, z Excelem napotyka jakiś problem podczas sprawdzania, czy powinien wyświetlić okno dialogowe zapisu pliku, czy próbowałeś zastąpić funkcję Auto_Close()? –

+2

Spróbuj bez kodu VBA lub bez formatu szablonu lub bez danych, aby uzyskać lepszy obraz źródła problemu. Jak to jest zbyt wiele czynników. –

+0

Jakieś wskazówki z ** Przeglądarki zdarzeń **? Podgląd zdarzeń -> Dzienniki aplikacji i usług -> Alerty Microsoft Office. Niektóre dodatki mogą to powodować, spróbuj w trybie awaryjnym Excel: 'EXCEL.EXE/safe' – PatricK

Odpowiedz

0

Otwórz nową instancję programu Excel, przejdź do pliku, kliknij raz, kliknij strzałkę w dół na przycisku Otwórz, kliknij Otwórz i napraw. To pomaga?

+0

Niestety, to nie zadziałało - przedostałem się przez 7 otwartych i zamkniętych zanim błąd "Microsoft Excel przestał działać". Dziękuję za odpowiedź, doceń pomoc! – arbitel

0

Przyczyną może być Autoodzyskiwanie. Gdy Autoodzyskiwanie zapisuje kopię zapasową, a użytkownik również próbuje zapisać, istnieje bardzo duża szansa, że ​​program Excel ulegnie awarii w przypadku pliku znajdującego się w ścieżce sieciowej. Autoodzyskiwanie działa domyślnie co 10 minut, co jest dość częste. Nie jestem szczególnie pewien, dlaczego się zawiesił, może to być spowodowane opóźnieniem sieci.

Autoodzyskiwanie można zmienić programowo. Ale zostanie wyłączone na poziomie aplikacji zamiast na poziomie skoroszytu. Dlatego pamiętaj, aby włączyć go ponownie po wyjściu ze skoroszytu, z którego nie chcesz korzystać z AutoReceover.

Mam nadzieję, że to pomoże.

+0

Nie słyszałem o tym wcześniej i brzmi to naprawdę obiecująco - przeprowadzę testy, gdy będę miał chwilę i zaktualizuję, jeśli to jest odpowiedź. Dzięki, tak czy inaczej! – arbitel

+0

tak, ale nie spodziewałbym się, że to będzie odpowiedź ... czasami skoroszyt staje się paskudny po długich edycjach, i być może ponowne uruchomienie od zera może być odpowiedzią ... ale najpierw pozwólcie, że to pomoże, palec skrzyżowałem – Rosetta

1

Trudno powiedzieć o tym typie problemu. Myślę, że to dla ciebie przypadek prób i błędów.

Co chciałbym spróbować na początku, to niektóre z poniższych.

  1. Spróbuj czyszczenia kodu w skoroszycie programu Excel. Ten na przykład: http://www.appspro.com/Utilities/CodeCleaner.htm
  2. Zastanowiłabym się przebudować skoroszyt od zera, jeśli to możliwe, i z powrotem skopiować kod. Zapisałbym kod do plików tekstowych i przerobiłam moduły, klasy, arkusze od zera.
  3. Czyściłabym twój katalog tymczasowy. Excel zapisuje obiekty VBA do katalogu temp. Jeśli robi się zbyt duży, powoduje to problemy.
  4. Sprawdziłbym, czy nie ma żadnych dodatków, które potencjalnie mogłyby mieć wpływ na rzeczy. Spróbuj usunąć nieużywane dodawanie dla minimalnej wersji.
  5. W przeszłości miałem problemy z niektórymi bibliotekami, które były wcześnie związane, ale było to bardziej związane z otwieraniem skoroszytów, które powodowały wyjątki. Być może możesz spróbować usunąć odniesienia i późno związać swoje obiekty - zakładając oczywiście, że nie używasz zdarzeń w tych obiektach. Więc zamiast używać Dim x jako SomeObject, użyj CreateObject ("....") i usuń odniesienia do bibliotek.
  6. Chciałbym też rzucić okiem w przeglądarce zdarzeń Microsoft, aby sprawdzić, czy można uzyskać więcej informacji. Konkretny wyjątek może ci pomóc we właściwym kierunku.

Przepraszam, że są nieco niejasne, ale przynajmniej możesz je wypróbować. Trudno jest zdalnie przekazywać więcej konkretnych zaleceń, nie będąc w stanie zobaczyć, co się dzieje/przetestować niektórych możliwych teorii.

Nadzieję, że pomaga.

+0

Chciałbym spróbować tutaj drugiego punktu. Też miałem takie rzeczy przedtem, ale odbudowanie tego naprawiło to.Nie mam pojęcia, jaki jest prawdziwy problem. – steveo40

0

Używam także dysków Excels with Share w mojej organizacji ... Może być wiele przyczyn i zależy od używanego dysku. Jeśli korzystasz z dysku współużytkowanego, który jest oparty na Internecie i nie jest kompatybilny z makrami, utknie on w pamięci. Jest to zasadniczo problem z punktem udziału w biurze.

Należy również skrócić kod i trzeba użyć opcji jawnie w kodzie VBA i opisać wszystkie zmienne. Kiedyś z powodu braku zdefiniowanych zmiennych przestanie działać, a program Excel utknie.

Musisz również wyłączyć ADD-INS w programie Excel, aby działało szybciej. Jeśli możesz udostępniać kod, ludzie mogą lepiej powiedzieć, dlaczego nie działa on idealnie. Jeśli możesz udostępnić rodzaj używanego dysku Share, możemy to sprawdzić, ponieważ musiałem zmierzyć się z tym samym problemem w przeszłości i pracowałem nad moim kodem i ponownie udostępniłem dysk.

Powiązane problemy