Event Trong VBA - Viblo
Có thể bạn quan tâm
VBA hỗ trợ nhiều sự kiện cho Worksheet như có thể bắt được thao tác khi sửa/ xóa dữ liệu, khi Click chuột, chuyển Sheet, xóa Sheet… Và dựa vào các sự kiện này khi thực thi, bạn có thể lồng vào các đoạn lệnh VBA để tùy biến thêm các tác vụ cho riêng mình.
Các sự kiện khi thao tác với WorkSheets trong VBA
Trong VBA, bạn có thể xem và tạo nhanh các sự kiện bằng cách chọn Worksheet và chọn mở trong danh sách các sự kiện. Lưu ý rằng :
- Nếu muốn bắt sự kiện trên Sheet1 thì trong VBA bạn phải tạo sự kiện đó trong Sheet1.
- Các sự kiện giữa các Sheet sẽ không ảnh hưởng đến nhau.
1)Worksheet_SelectionChange
Sự kiện thực thi khi thay đổi chọn Cells hoặc Range. Ví dụ khi đang ở Cells A1, bạn chuyển qua Cells A2 thì sự kiện sẽ được thực thi. Sự kiện hoạt động cả khi di chuyển bằng chuột hoặc bằng phím điều hướng. Chú thích: Target: biến khai báo theo kiểu Range. Khi kéo chọn 1 Range, Target sẽ lấy vị trí Cell đầu tiên. Ví dụ: Xác định vị trí của Cells thuộc hàng A khi Click chuột
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing Then MsgBox "Hang " & Target.Column & " Cot " & Target.Row End If End Sub2) Worksheet_Activate
Sự kiện này sẽ thực thi khi bạn di chuyển giữa các Sheets của một Workbook. Ví dụ: khi đang ở Sheet1 bạn di chuyển qua Sheet2 thì sự kiện được khai báo ở Sheet2 sẽ thực thi.
Private Sub Worksheet_Activate() End Sub3) Worksheet_Deactivate
Khác với sự kiện ở Worksheet_Activate thì sự kiện được khai báo ở Sheet1 sẽ thực thi.
Private Sub Worksheet_Deactivate() End Sub4) Worksheet_BeforeDoubleClick
Nếu để ý, thì khi Click chuột vào 1 Cells thì sẽ phải Double Click vào Cells đó mới có thể chỉnh sửa. Vậy sự kiện này sẽ thực thi trước khi con trỏ chuột trong Cells. Sự kiện sẽ không thực thi khi 1 Click vào Cells và dùng bàn phím để nhập liệu.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End SubGhi chú: Target: biến khai báo theo kiểu Range. Cancel: biến kiểu Boolean sẽ có giá trị là TRUE/ FALSE. Giá trị là FALSE khi sự kiện thực thi. Ví dụ: Ghi thời gian hiện tại khi Double Click vào Cells thuộc hàng A
Private Sub Worksheet_BeforedoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("A:A")) Is Nothing Then If Target.Value = "" Then Target.Value = Now() End If End If End Sub5) Worksheet_BeforeRightClick
Sự kiện thực thi khi bạn Click chuột phải vào bảng tính. Sẽ thực thi trước khi Menu Context của Excel được hiển thị.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End SubGhi chú: Target: biến khai báo theo kiểu Range. Cancel: biến Boolean sẽ có giá trị là TRUE/ FALSE. Giá trị là FALSE khi sự kiện thực thi.
6) Worksheet_Calculate
Sự kiện thực thi khi các phép toán trên Sheet được thực hiện hoặc làm mới. Ví dụ: khi bạn thực hiện 1 phép tính cộng thì sự kiện này sẽ thực thi. Chỉ thực thi khi có phép toán được thực hiện trên bảng tính.
Private Sub Worksheet_Calculate() End Sub7) Worksheet_Change
Khi kết thúc chỉnh sửa trong bảng tính thì sự kiện này sẽ được thực thi. Bao gồm cả thay đổi khi nhập văn bản và thay đổi từ kết quả của các hàm.
Private Sub Worksheet_Change(ByVal Target As Range) End SubTừ khóa » Sự Kiện Worksheet_change
-
Các Sự Kiện Khi Thao Tác Với Worksheet Trong VBA
-
Worksheet.Change Event (Excel) | Microsoft Docs
-
Khai Thác Sự Kiện Worksheet_Change VBA Excel để Cập Nhật Dữ ...
-
Xin Giúp đỡ Về Sự Kiện Worksheet_Change | Page 2
-
Tự động Cập Nhật Báo Cáo Khi Thay đổi Thời Gian Bằng VBA
-
Worksheet Change Event - Excel Dashboards VBA
-
VBA Worksheet Change Event - Run A Macro When A Cell Changes
-
Sự Kiện Excel Worksheet_Change Không Hoạt động - HelpEx
-
Nhiều Sự Kiện Worksheet_Change Trong Mã Vba - HelpEx
-
Worksheet Change Event: Run Excel Macros When A Cell Changes ...
-
Events (sự Kiện) Trong VBA Excel - Tài Liệu Text - 123doc
-
Có Thể Giải Thick Cho E Thêm Về Bẫy Lỗi Với Sự Kiện Worksheet_change
-
Worksheet Change Event, Excel VBA - ExcelAnytime