Ok! Ten jest ważny.
Każda dobra procedura VBA zawsze ma tę linię na początku.
Application.Screenupdating=FAŁSZ
A przed zakończeniem procedury również zobaczysz tę linię.
Application.Screenupdating=PRAWDA
Co to jest aktualizacja ekranu?
Aktualizacja ekranu jest właściwością obiektów aplikacji w VBA. Może być ustawiony na TRUE lub FALSE. Jest jak przełącznik, który można włączyć lub wyłączyć.
I co to robi?
Pierwsza linia przyspiesza przetwarzanie makr, zatrzymując aktualizację ekranu programu Excel w czasie rzeczywistym.
Jeśli masz długie makro, które zapisuje w różnych arkuszach, stosuje filtry, usuwa filtry, zmienia arkusze, zapisuje skoroszyty itp. A jeśli nie wyłączyłeś aktualizacji ekranu za pomocą wiersza Application.Screenupdating=FALSE, zobaczysz migotanie na ekranie. Każda zmiana dokonana przez makro w skoroszycie będzie pokazywana dynamicznie. Spowalnia to szybkość makro.
A jeśli masz ten wiersz na początku makra, program Excel nie będzie odzwierciedlał zmian wprowadzonych przez makro, dopóki aktualizacja ekranu nie zostanie włączona za pomocą wiersza Application.Screenupdating=TRUE.
Jeśli chcesz przyspieszyć działanie makra, wyłącz aktualizację ekranu na początku podprogramu i włącz aktualizację ekranu przed końcem podprogramu.
Oto jeden przykład:
Kontrola ekranu podrzędnego() Application.Screenupdating=FALSE 'Wyłączanie aktualizacji ekranu. Sheet1.Activate Range("A1").value ="Cześć" Range("A2").value ="Jak się masz?" Range("A3").value ="Exceltip jest niesamowity, prawda?" Arkusz2.Aktywuj Application.Screenupdating= TRUE 'Włączanie aktualizacji ekranu. Napis końcowy
Po uruchomieniu powyższej łodzi podwodnej nie zobaczysz żadnego migotania ekranu. Zobaczysz końcowy efekt pracy wykonanej przez to makro.
Ważne notatki:
Upewnij się, że włączyłeś aktualizację ekranu przed zakończeniem procedury. Jeśli nie włączysz aktualizacji ekranu, nie będziesz mógł zobaczyć pracy wykonanej przez makro.
Nie można zaktualizować ekranu przed każdym poleceniem Exit Sub i End Sub. Często zapomina się włączyć aktualizacje ekranu przed wyjściem z Sub. Jeśli tego nie zrobisz, możesz się zastanawiać, dlaczego Twój kod nie zadziałał. Ale w rzeczywistości tak było. Po prostu tego nie widzisz.
Otóż to. To właśnie robi Application.Screenupdating = False w VBA. Ta jedna linijka kodu bardzo się zmienia. Jest to różnica między dojrzałym programowaniem a programowaniem nieostrożnym. Jeśli chcesz przyspieszyć działanie makra, zawsze używaj tego wiersza w kodzie.
Mam nadzieję, że to ci pomogło. Jeśli masz jakiekolwiek wątpliwości dotyczące tego artykułu lub masz inne pytania związane z Excelem / VBA, możesz je zadać w sekcji komentarzy poniżej. Chętnie pomogę.
Jaka jest różnica między argumentami ByRef i ByVal? :To ważne pytanie VBA. ByVal i ByRef służą do przekazywania argumentów w inny sposób. Jedna pozwala na dokonanie zmiany w oryginalnej zmiennej, podczas gdy druga nie zmienia oryginalnej zmiennej.
Jak zapętlić arkusze w programie Excel za pomocą VBA : Automatyzując zwykłe nudne zadania programu Excel w VBA, będziesz musiał przejść przez każdy arkusz. Zacznijmy od przykładu. Kod VBA do pętli we wszystkich arkuszach w Activeworkbook i wydrukuj nazwę arkusza
Wydarzenia w Excel VBA: Czasami chcemy, aby coś wydarzyło się automatycznie, gdy nastąpi określone zdarzenie. Aby coś zrobić, gdy określone zdarzenie wydarzy się w Excelu, używamy zdarzenia Excel VBA
Popularne artykuły:
50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.
Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.
LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby zliczyć określone wartości. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.
Jak korzystać z funkcji SUMIF w programie Excel? | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.