Các sự kiện ở mức Ứng dụng hoạt động trên toàn bộ ứng dụng (Excel trong tài liệu tham khảo này). Nhưng việc kích hoạt sự kiện ứng dụng không dễ dàng như tạo Sự kiện Workbook hoặc Worksheet. Nhưng tôi đảm bảo với bạn rằng nó không phải là khó khăn như vậy. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo và sử dụng Sự kiện ứng dụng trong Excel VBA trong một vài bước đơn giản.

Bước 1: Tạo một đối tượng sự kiện trong mô-đun lớp A

Để tạo một đối tượng sự kiện, chúng ta cần sử dụng mô-đun lớp.

  • Chèn một liên kết: / modules-class-modules-in-vba-vba-class-modules-and-how-to-use-them [class module]. Đặt tên nó như bạn muốn. Tôi đặt tên nó là MyAppEvents.

  • Xác định một biến sự kiện của loại Ứng dụng với từ khóa WithEvents.

Private WithEvents myApp As Application
  • Khởi tạo sự kiện này trong chương trình con class_initialize ().

Từ menu thả xuống bên trái, hãy chọn lớp. Sau đó, trên menu thả xuống trên cùng bên phải, hãy chọn khởi tạo.

image

Private Sub Class_Initialize()

Set myApp = Application

End Sub
  • Bây giờ xác định các sự kiện bạn muốn sử dụng. Từ menu thả xuống trên cùng bên trái, hãy chọn đối tượng sự kiện. Tất cả các quy trình xử lý sự kiện có sẵn sẽ có sẵn cho bạn trong menu thả xuống trên cùng bên phải. Chọn bất kỳ cái nào bạn yêu cầu và xác định những gì bạn muốn làm khi sự kiện đó kích hoạt. Hình ảnh: https: //www.office-skill.site/images/wp-content-uploads-2020-01-Capture-37.jpg [image, width = 540, height = 208]

Tôi sử dụng sự kiện SheetActivate. Bất cứ khi nào người dùng chuyển đổi giữa các trang tính của bất kỳ sổ làm việc nào đang mở, nó sẽ hiển thị tên của sổ làm việc và người dùng trang tính đã chọn.

Private Sub myApp_SheetActivate(ByVal Sh As Object)

MsgBox ActiveWorkbook.Name & "-" & Sh.Name

End Sub

Bạn có thể xác định bao nhiêu sự kiện mà bạn muốn xác định tại đây.

image

Các sự kiện sẽ không bắt đầu hoạt động ngay lập tức. Đây là bước đầu tiên.

Vì nó là một mô-đun lớp, chúng ta cần tạo một đối tượng của nó để kích hoạt các sự kiện.

Bây giờ chúng ta chỉ cần bắt đầu các sự kiện này từ một chương trình con bình thường.

Bước 2: Tạo chương trình con khởi động sự kiện trong mô-đun bình thường

Bây giờ chúng ta có một lớp sự kiện. Chúng ta chỉ cần tạo một đối tượng của lớp đó và khởi tạo nó. Khi chúng ta chạy chương trình con này, tất cả các sự kiện được xác định trong lớp sự kiện sẽ bắt đầu hoạt động.

image

  • Chèn một mô-đun bình thường.

  • Xác định một biến của lớp bạn đã tạo.

Private AppE As MyAppEvents
  • Khởi tạo nó trong một chương trình con. Bạn có thể đặt tên nó như bạn muốn.

Private Sub StartEvents()

Set AppE = New MyAppEvents

End Sub

  • Chạy mã này bằng phím F5. Theo tùy chọn, bạn có thể gán macro này cho nút trên trang tính nếu bạn muốn bắt đầu các sự kiện từ trang tính.

Và nó được thực hiện. Bây giờ bất cứ khi nào bạn chuyển đổi trang tính, một hộp thông báo sẽ xuất hiện với tên của sổ làm việc và trang tính, miễn là mã chứa sổ làm việc đang mở.

image

Nó có khó không? Tôi không nghĩ vậy. Hãy cho tôi biết suy nghĩ của bạn trong phần bình luận bên dưới.

Bật và Tắt Sự kiện Ứng dụng VBA Khi bạn chạy macro trong mô-đun bình thường, nó sẽ luôn kích hoạt cho đến khi bạn đóng sổ làm việc có chứa các sự kiện. Nhưng bạn có thể muốn họ bật và tắt chúng theo ý muốn của bạn. Có hai cách để làm điều này.

Hủy bỏ tập hợp đối tượng sự kiện Cho phép thông báo sai

1. Vô hiệu hóa đối tượng sự kiện

Trong một chương trình con riêng biệt, hãy đặt đối tượng sự kiện thành Nothing

Private Sub StopEvents()

Set AppE = Nothing

End Sub

Khi bạn chạy mã này, các sự kiện sẽ ngừng hoạt động. Bạn có thể đặt nó vào một nút trên trang tính để dừng các sự kiện. Bây giờ bạn sẽ có hai nút để bắt đầu và dừng các sự kiện cụ thể này. Nó sẽ chỉ dừng các sự kiện được tạo bởi đối tượng AppE.

2. Đặt EnableEvents thành False

Phương pháp thứ hai là vô hiệu hóa các sự kiện. Để làm cho tất cả các sự kiện không thể truy cập được, chúng tôi đặt thuộc tính EnableEvents của lớp Ứng dụng thành

Sai.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Đoạn mã trên sẽ vô hiệu hóa tất cả các sự kiện. Ngay cả các sự kiện excel mặc định. Chúng sẽ không hoạt động cho đến khi bạn bắt đầu lại chúng. Ngay cả khi bạn chạy chương trình con StartEvents () (ở trên), sự kiện sẽ không hoạt động. Để làm cho tất cả các sự kiện hoạt động trở lại, bạn sẽ phải đặt lại thuộc tính EnableEvents thành True.

Vì vậy, nếu bạn muốn các sự kiện của mình hoạt động mỗi khi bạn bắt đầu các sự kiện, hãy thêm dòng mã này vào phần phụ.

Private Sub StartEvents()

Application.EnableEvents = True

Set AppE = New MyAppEvents

End Sub

image

Vì vậy, các bạn, đây là cách bạn có thể sử dụng sự kiện ứng dụng trong excel. Hãy cho tôi biết nếu điều này đã đủ giải thích và giúp bạn hiểu Sự kiện cấp ứng dụng trong Excel VBA trong phần nhận xét bên dưới. Nếu bạn có điều gì đó để thêm vào điều này, hãy viết luôn điều đó. Bạn có thể đặt câu hỏi của mình liên quan đến bài viết này hoặc bất kỳ chủ đề nào khác liên quan đến VBA excel trong phần bình luận bên dưới.

Tải xuống tệp làm việc bên dưới:

image 48

Bài viết liên quan:

Bài viết phổ biến:

Chức năng Countif là cần thiết để chuẩn bị bảng điều khiển của bạn.