Aktualizacja ekranu VBA - Przyspieszenie procesu działania kodu

Aktualizacja ekranu Excel VBA

Aktualizacja ekranu VBA to właściwość używana do unikania błysków rozpraszających uwagę lub zapobiegania im podczas uruchamiania kodu i przyspieszenia jej poprzez wyłączenie aktualizacji ekranu. Możemy wyłączyć aktualizację ekranu, ustawiając tę ​​właściwość na false.

Często zdarza się, że ekran programu Excel szaleje, gdy makro jest uruchomione, i prawie się tym denerwujemy. Ale jak radzimy sobie z takimi sytuacjami i jak sprawić, by kod działał szybciej niż zwykle wolna rzecz?

Aktualizowanie ekranu to coś, co możemy zauważyć, gdy makro programu Excel jest uruchomione. Kiedy zadanie jest wykonywane, możemy zauważyć, że nasz ekran aktualizuje wartości, dopóki makro nie zakończy przydzielonego zadania. Gdy ekran migocze lub odświeża się, prowadzi to do spowolnienia działania programu Excel i zajmuje więcej czasu niż zwykle, aby wykonać zadanie.

W VBA mamy właściwość o nazwie „ScreenUpdating” i ustawiamy tę właściwość na FALSE, aby wyeliminować proces aktualizacji ekranu podczas działania kodu.

W tym artykule pożegnamy się z oglądaniem na ekranie dramatu akcji, gdy kod jest uruchomiony. Dzisiaj sprawisz, że Twój kod będzie działał szybciej i szybciej niż zwykle.

Kiedy używać funkcji aktualizacji ekranu?

Załóżmy, że masz wątpliwości, kiedy użyć tej techniki. Spójrz na poniższe punkty.

  • Gdy przeglądasz dużą liczbę komórek.
  • Wysyłanie e-maili z Excel VBA.
  • Przełączanie się między skoroszytami programu Excel.
  • Otwieranie nowych skoroszytów.

Jak korzystać z funkcji aktualizacji ekranu w kodzie VBA?

Przykład 1 - Wyłącz aktualizację ekranu

Na przykład spójrz na poniższy kod.

Kod:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 For RowCount = 1 do 50 For ColumnCount = 1 do 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Wybierz Cells (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub

Powyższe ma zagnieżdżoną pętlę VBA do wstawiania numerów seryjnych z pierwszej kolumny do 50- tej kolumny i ponownie wraca i wstawia numer seryjny, zaczynając od 51 z drugiego wiersza do 50- tej kolumny.

W ten sposób, to wkładka aż osiągnie 50 th wiersz.

Gdy ten kod jest uruchomiony, możesz zauważyć migotanie ekranu i nie możesz nic zrobić poza oglądaniem tego szalonego momentu.

Aby uniknąć tego wszystkiego, możemy dodać aktualizację ekranu do FALSE.

Aby najpierw uzyskać dostęp do funkcji aktualizacji ekranu, musimy uzyskać dostęp do obiektu aplikacji.

Jak widać w obiekcie Application, mamy wiele właściwości i metod. Dlatego z listy IntelliSense wybierz opcję Aktualizacja ekranu.

Uwaga: Funkcję aktualizacji ekranu należy zastosować natychmiast po zadeklarowaniu zmiennych.

Po wybraniu właściwości Aktualizacja ekranu umieść znak równości (=).

Jak widać, dwie wartości logiczne, tj. FALSE & TRUE.

Aby zatrzymać aktualizację ekranu, ustaw stan na FALSE.

Teraz, gdy makro zacznie działać jako pierwsze, zaktualizuje stan aktualizacji ekranu na FALSE i przejdzie do następnej linii.

Ponieważ makro wykonało aktualizację ekranu do FALSE, nie pozwoli to na aktualizację ekranu, gdy kod wykonuje swoje zadanie.

Przykład 2 -

Zawsze ustawiaj aktualizację ekranu na TRUE na końcu

Widziałem, jak wiele osób ustawiało aktualizację ekranu na FALSE, ale zapomniałem ustawić go z powrotem na TRUE na końcu makra.

Zawsze ustawiaj aktualizację ekranu z powrotem na TRUE na końcu makra.

Kod:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 For RowCount = 1 do 50 For ColumnCount = 1 do 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub

Interesujące artykuły...