Nếu bạn đang ở đây, có lẽ bạn muốn tìm hiểu cách chạy một chương trình con mỗi khi thực hiện thay đổi trong một trang tính cụ thể. Bài viết này sẽ dạy chính xác điều đó. Vậy hãy bắt đầu.

Cú pháp cho Trình xử lý sự kiện thay đổi trang tính là:

Private Sub worksheet_change(ByVal Target As Range)

'your code

'

'

End Sub

Mã này phải được viết trong một đối tượng trang tính để hoạt động, không phải trong một mô-đun bình thường.

Private Sub worksheet_change(ByVal Target As Range)

Msgbox "You updated something in this sheet"

End Sub

Nếu bạn có mã này trên sheet1 và bạn viết hoặc xóa nội dung nào đó trong sheet1, phần mát-xa sẽ bật ra rằng “Bạn đã cập nhật thông tin gì đó trong trang tính này”.

Nó sẽ không hoạt động trong các mô-đun bình thường. Nhưng bạn có thể gọi các chương trình con từ bất kỳ mô-đun nào. Chúng tôi sẽ làm như vậy trong phiên này.

image

Tình huống:

RunExcel Macro nếu có bất kỳ thay đổi nào được thực hiện trên Worksheet

image

Vì vậy, giả sử chúng ta có một macro thay đổi màu của các ô dựa trên một số điều kiện. Cũng giống như Định dạng có điều kiện của Excel. Sự khác biệt duy nhất là màu của các ô thay đổi khi chúng ta chạy mã VBA này bằng cách sử dụng nút hoặc lệnh chạy, không phải khi các giá trị thay đổi. Chúng tôi muốn macro chạy bất cứ khi nào thay đổi được thực hiện trong trang tính. Ở đây Sự kiện VBA sẽ giúp bạn. Bây giờ để làm điều này, chúng tôi sẽ sử dụng Sự kiện Thay đổi Trang tính.

Làm theo các bước sau:

  • Vào trình khám phá dự án và nhấp đúp vào trang tính mà bạn muốn kích hoạt sự kiện worksheet.change. Tôi muốn kích hoạt sự kiện khi một số thay đổi được thực hiện trên Sheet2, vì vậy tôi nhấp đúp vào Sheet2. Bạn cũng có thể nhấp chuột phải và nhấp vào mã xem để mở vùng viết mã cho các đối tượng trang tính. Trong vùng mã, hãy viết dòng mã này.

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

worksheet_change (Target as Range) là một chương trình con được bảo toàn chạy khi một thay đổi được thực hiện trên trang tính chứa mã.

Khi bạn viết mã này, bạn sẽ thấy đối tượng chuyển sang trang tính. Xem menu thả xuống phía trên bên trái. Trong menu thả xuống phía trên bên phải, sự kiện là “thay đổi” .

_Nếu bạn sử dụng menu thả xuống và chọn trang tính trong menu thả xuống bên trái, tất cả các sự kiện có sẵn sẽ được hiển thị trong menu thả xuống bên phải.

Cho dù bạn chọn menu thả xuống nào, mã cho sự kiện đó sẽ được viết tự động. Bạn chỉ cần điền nó với các chương trình con tùy chỉnh của mình.

image_ * Now just put your code in this segment. I want to call my subroutine that is in a module. So I simply call that subroutine in this worksheet event handler. My subroutine isFormatUsingVBA() in Module1

Private Sub worksheet_change(ByVal Target As Range)

Call FormatUsingVBA

End Sub

Bây giờ, bất cứ khi nào chúng ta thực hiện thay đổi trong sheet2, macro FromatUsingVBA sẽ chạy.

image

Vì vậy, các bạn, đây là cách có thể chạy một tập lệnh VBA khi một trang tính thay đổi nội dung của nó, bằng cách sử dụng trình xử lý Sự kiện Thay đổi Trang tính. Tôi hy vọng nó là hữu ích. Nếu bạn có bất kỳ câu hỏi nào liên quan đến trình xử lý sự kiện này, hãy đề cập đến nó trong phần nhận xét.

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.