VBA DoEvents | Sử dụng hàm DoEvents như thế nào và khi nào?

Hàm DoEvents trong Excel VBA

Với sự trợ giúp của VBA DoEvents , chúng tôi có thể làm cho mã chạy ở chế độ nền và đồng thời cho phép chúng tôi làm việc với excel và các phần mềm ứng dụng khác. DoEvents không chỉ cho phép chúng tôi làm việc với các phần mềm khác mà chúng tôi còn có thể làm gián đoạn việc chạy mã.

Chức năng DoEvents chuyển quyền kiểm soát đến hệ điều hành của máy tính mà chúng tôi đang làm việc.

Làm thế nào để sử dụng Hàm DoEvents?

Một lượng lớn mã VBA được yêu cầu khi yêu cầu rất lớn. Trong những trường hợp đó, excel bị treo và dừng trong một thời gian và thậm chí đôi khi nó không phản hồi.

Bạn có thể tải về Mẫu VBA DoEvents Excel này tại đây - Mẫu VBA DoEvents Excel

Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 to 100000 Range ("A1"). Value = i Next i End Sub 

Đoạn mã trên sẽ chèn các số sê-ri từ 1 đến 100000. Sẽ dễ dàng mất hơn một phút để thực thi tác vụ. Trong quá trình thực thi, excel bị treo trong một khoảng thời gian đáng kể để hoàn thành tác vụ. Trong thời gian này, excel hiển thị thông báo là "Excel Không phản hồi".

Hơn nữa, chúng tôi không thể truy cập trang tính mà chúng tôi đang làm việc. Đây là một điều khó chịu, sau đó làm thế nào để chúng ta làm cho bảng tính excel có sẵn để hoạt động trong khi mã đang chạy phía sau màn hình.

Điều này có thể đạt được bằng cách thêm chức năng VBA DoEvents .

Mã:

 Sub DoEvents_Example1 () Dim i As Long For i = 1 to 100000 Range ("A1"). Value = i DoEvents Next i End Sub 

Thời điểm chúng ta thêm hàm DoEvents vào mã, chúng ta có thể truy cập trang tính Excel.

Từ phía trên, chúng ta có thể thấy rằng mã đang chạy nhưng chúng ta có thể truy cập trang tính.

Làm gián đoạn mã đang chạy

Khi mã đang chạy phía sau màn hình, chúng ta có thể thêm hàng, cột và xóa giống nhau, chúng ta có thể đổi tên trang tính và chúng ta cũng có thể làm nhiều việc khác. Thời điểm chúng tôi thêm DoEvents, nó làm cho mã vba chạy nhanh và cho phép chúng tôi biết rằng tác vụ được đề cập đang chạy cho chính nó.

  • Một trong những mối nguy hiểm của hàm DoEvents là khi chúng ta chuyển đổi trang tính hoặc sổ làm việc, nó sẽ ghi đè lên các giá trị trang tính đang hoạt động.
  • Một mối nguy hiểm khác là, nếu chúng tôi nhập bất kỳ giá trị nào vào ô, việc thực thi mã sẽ tạm dừng và nó thậm chí không thông báo cho chúng tôi.
Lưu ý : Bất chấp những nguy hiểm nêu trên của DoEvents, nó vẫn là một chức năng tiện dụng. Chúng tôi có thể sử dụng DoEvents như một phần của quy trình gỡ lỗi khi chúng tôi cố gắng sửa các lỗi của mã chúng tôi đã viết.

$config[zx-auto] not found$config[zx-overlay] not found