VBA 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 czasem nawet przestaje odpowiadać.

Możesz pobrać ten szablon VBA DoEvents Excel tutaj - Szablon VBA DoEvents Excel

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 może zająć 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 jako „Excel nie odpowiada”.

Ponadto nie możemy uzyskać dostępu do arkusza, nad którym pracujemy. To jest 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 góry widać, że kod działa, ale mamy dostęp do arkusza.

Przerwij działanie kodu

Gdy kod jest uruchomiony 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. Dodanie DoEvents sprawia, że ​​kod vba działa szybko i pozwala stwierdzić, że wspomniane zadanie działa samodzielnie.

  • Jednym z niebezpieczeństw związanych z funkcją DoEvents jest to, że gdy przełączamy arkusze lub skoroszyty, nadpisuje ona wartości aktywnego arkusza.
  • Innym niebezpieczeństwem jest to, że jeśli wprowadzimy jakąkolwiek wartość do komórki, wykonanie kodu zatrzymuje się i nawet nas nie powiadamia.
Uwaga : Pomimo powyższych niebezpieczeństw związanych z DoEvents, jest to nadal przydatna funkcja. Możemy użyć DoEvents jako części procesu debugowania, gdy próbujemy naprawić błędy w napisanym przez nas kodzie.