2012-04-26 28 views
5

Byłem debugowania problemu wspomniano w kilku innych * pytania na SO i zauważyłem dziwne zachowanie podczas procesu debugowania.Techniki debugowania programu Excel VBA "Brak pamięci"

Zachowanie: Wystąpił błąd doświadczania "braku pamięci" podczas wklejania złożonych formuł. Tylko około połowy z 20 000 wierszy, które powtarzam, pobiera formuły wklejone przed błędem. Skomentował praktycznie cały kod, błąd zniknął. Kod uncomment przyrostowo w nadziei, że odkryje konkretną sekcję kodu, która go powoduje. Zakończyć odkomentowanie całego kodu i przestać go doświadczać!

Oznacza to, że dokładnie ten sam kod działał poprawnie w tej samej instancji programu Excel, a jego naprawienie wymagało użycia różnych, lżejszych wersji kodu, zanim powróci do pierwotnej wersji. Co mogłoby to spowodować?

+2

Sugeruję wypróbowanie [Czyściciela kodu] Rona Bovey'a (http://www.appspro.com/Utilities/CodeCleaner.htm) - dokonuje on przeglądu kodu, eksportując go, usuwając, a następnie ponownie wstawiając wyeksportowane moduły – brettdj

+0

+ 1 Zgadzam się z brettdj. Code Cleaner jest naprawdę dobry. Ciekawi mnie też każdy taki przykład, który daje ci błąd ... –

+0

Dzięki @brettdj ale Code Cleaner nie pomogło. Udało mu się sprowadzić plik .xla do 151 tys. Z 159 tys., Co jest dla mnie fascynujące. – Trindaz

Odpowiedz

3

Zakładając, że dane, które były uruchomione, były dokładnie identyczne za każdym razem, brzmi bardziej jak twój problem dotyczy środowiska - może to oznaczać, że w systemie operacyjnym zabrakło pamięci. W programie Excel 2007 pamięć podręczna dla formuł i pamięci podręcznych została zwiększona do 2 gigabajtów (GB), więc prawdopodobnie nie stanowi to problemu. Jednak jest również oczywiście ograniczona ilością pamięci dostępnej w twoim systemie operacyjnym.

Problem mógł się pojawić, ponieważ po pierwszym jego przetestowaniu dostępna pamięć systemu operacyjnego była niższa (inne procesy uruchomione ... mogły zostać przesunięte ponad limit programów działających w tle, takich jak oprogramowanie antywirusowe uruchamiające skanowanie) niż wtedy, gdy uruchomiłeś pełne makro. Chciałbym spróbować uruchomić twoje makro z otwartym Menedżerem zadań, aby zobaczyć, czy zbliżasz się do niskiej pamięci fizycznej. Ponadto (zakładając, że korzystasz z programu Excel 2007 lub nowszego), sprawdź, ile pamięci używa program Excel i zobacz, czy zbliżasz się do limitu 2 GB. Wątpię, żeby to było problemem, ale przynajmniej warto to sprawdzić podwójnie. Podobnie jak powiedział Zairja, upewnij się, że ustawiasz obliczenia na ręczne na początku.

Mówiłeś, że były przy użyciu skomplikowanych formuł ... sprawdź ten artykuł na Improving Performance in Excel

istnieje wiele użytecznych informacji w artykule, który będzie prawdopodobnie pomóc usprawnić makro.

Czy to pomocne?

Powiązane problemy