VBA DoEvents - Jak i kiedy używać funkcji DoEvents?

Funkcja Excel VBA DoEvents

Z pomocą VBA DoEvents możemy sprawić, że kod będzie działał w tle i jednocześnie umożliwi nam pracę z programem Excel i innymi aplikacjami. DoEvents nie tylko pozwala nam pracować z innymi programami, ale także może przerwać działanie kodu.

Funkcja DoEvents przekazuje kontrolę do systemu operacyjnego komputera, na którym pracujemy.

Jak korzystać z funkcji DoEvents?

Gdy wymagania są ogromne, wymagana jest duża ilość kodu VBA. W takich przypadkach program Excel zawiesza się i zatrzymuje na jakiś czas, a nawet czasami przestaje odpowiadać.

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

Kod:

Sub DoEvents_Example1 () Dim i As Long For i = 1 do 100000 Range („A1”). Value = i Next i End Sub

Powyższy kod wstawi numery seryjne od 1 do 100 000. Wykonanie zadania z łatwością zajmie więcej niż minutę. Podczas wykonywania program Excel zawiesza się przez znaczny czas, aby ukończyć zadanie. W tym czasie program Excel wyświetla komunikat „Excel nie odpowiada”.

Ponadto nie możemy uzyskać dostępu do arkusza, nad którym pracujemy. To frustrujące, więc w jaki sposób możemy udostępnić arkusz programu Excel do pracy, gdy kod działa za ekranem.

Można to osiągnąć, dodając funkcję VBA DoEvents .

Kod:

Sub DoEvents_Example1 () Dim i As Long For i = 1 do 100000 Range („A1”). Value = i DoEvents Next i End Sub

W momencie dodania funkcji DoEvents w kodzie, możemy uzyskać dostęp do arkusza programu Excel.

Z powyższego widać, że kod jest uruchomiony, ale mamy dostęp do arkusza.

Przerwij działanie kodu

Gdy kod działa za ekranem, możemy dodawać wiersze, kolumny i usuwać to samo, możemy zmienić nazwę arkusza, a także możemy zrobić wiele innych rzeczy. W momencie dodania DoEvents sprawia, że ​​kod VBA działa szybko i pozwala nam stwierdzić, że wspomniane zadanie działa samodzielnie.

  • Jednym z niebezpieczeństw związanych z funkcją DoEvents jest zmiana arkuszy roboczych lub skoroszytów i nadpisanie aktywnych wartości arkusza.
  • Innym niebezpieczeństwem jest to, że jeśli wprowadzimy jakąkolwiek wartość do komórki, wykonanie kodu zostanie zatrzymane, a nawet nas nie powiadamia.
Uwaga : Pomimo powyższych niebezpieczeństw związanych z DoEvents, nadal jest to przydatna funkcja. Możemy użyć DoEvents jako części procesu debugowania, gdy próbujemy naprawić błędy w napisanym przez nas kodzie.

Interesujące artykuły...