John cần đảm bảo rằng một số hành động nhất định đã diễn ra (thêm thông tin, v.v.) trước khi người dùng rời khỏi trang tính. Anh ấy tự hỏi nếu có một số loại sự kiện vĩ mô như WorksheetBeforeDeactivate.

Thực tế có hai sự kiện bạn có thể sử dụng cho mục đích này. Bạn có thể sử dụng sự kiện SheetDeactivate trong mô-đun ThisWorkbook để kích hoạt các hành động bất cứ khi nào người dùng rời khỏi bất kỳ trang tính nào trong sổ làm việc:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

MsgBox Prompt:="You just left sheet:" & Sh.Name End Sub

Nếu bạn chỉ muốn kích hoạt các hành động khi chúng rời khỏi một trang tính cụ thể, thì bạn có thể sử dụng sự kiện Hủy kích hoạt trong đối tượng WorkSheet:

Private Sub Worksheet_Deactivate()

' sheet specific code goes here End Sub

Tuy nhiên, bạn nên biết rằng trong cả hai trường hợp, trang tính mà người dùng đang chọn sẽ là trang tính hoạt động sau khi sự kiện hoàn thành. Nếu bạn muốn buộc người dùng ở lại trang tính, bạn cần phải đưa họ trở lại trang tính cụ thể theo cách sau:

Private Sub Worksheet_Deactivate()

' sheet specific code goes here     Sheets("Sheet1").Select End Sub

Tất nhiên, điều này giả định rằng tên của trang tính mà bạn muốn người dùng duy trì là Sheet1.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (7730) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: