Właściwość aktualizacji ekranu VBA

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. Migotanie lub odświeżanie ekranu powoduje spowolnienie działania programu Excel i wykonanie zadania zajmuje więcej czasu niż zwykle.

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. Dziś sprawisz, że Twój kod będzie działał szybciej i szybciej niż zwykle.

Kiedy używać funkcji aktualizacji ekranu?

Jeśli masz jakiekolwiek 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?

Możesz pobrać ten szablon VBA ScreenUpdating Excel tutaj - szablon VBA ScreenUpdating Excel

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. kolumny i ponownie wraca i wstawia numer seryjny, zaczynając od 51 z drugiego wiersza do 50. kolumny.

W ten sposób będzie wstawiać, aż osiągnie 50. wiersz.

Podczas działania tego kodu 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 uzyskać dostęp do funkcji aktualizacji ekranu, najpierw musimy uzyskać dostęp do obiektu aplikacji.

Jak widać w obiekcie Application, mamy wiele właściwości i metod. Tak więc wybierz aktualizację ekranu z listy IntelliSense.

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 widzimy dwie wartości logiczne, tj. FALSE i TRUE.

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

Teraz, gdy makro zacznie działać jako pierwsze, zaktualizuje stan aktualizacji ekranu do 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