Chạy một thủ tục khi một sổ làm việc được mở (Microsoft Excel)
Bạn có thể khiến Excel tự động chạy một thủ tục bất cứ khi nào một sổ làm việc cụ thể được mở. Ví dụ: khi sổ làm việc được mở, bạn có thể muốn chạy một thủ tục hỏi người dùng xem họ có muốn thực hiện một số tác vụ hay không, chẳng hạn như lưu dữ liệu của ngày hôm trước vào một tệp khác.
Để chạy một thủ tục tự động khi một sổ làm việc được mở, tất cả những gì bạn cần làm là đặt tên cho thủ tục là Auto_Open (). Do đó, thủ tục sau sẽ được chạy tự động bất cứ khi nào sổ làm việc chứa nó được mở:
Sub Auto_Open() Dim strMsg As String Dim intBoxType As Integer Dim strTitle As String Dim intUpdate As Integer Dim strDefault As String Dim strOldFile As String Dim intStatusState As Integer strMsg = "Do you want to save yesterday's transactions?" intBoxType = vbYesNo + vbQuestion strTitle = "Automatic Backup Routine" intUpdate = MsgBox(Msg, BoxType, Title) If intUpdate = vbYes Then strMsg = "Which filename would you like use?" strDefault = "OLD.DAT" strOldFile = InputBox(strMsg, strTitle, strDefault) intStatusState = Application.DisplayStatusBar Application.DisplayStatusBar = True Application.StatusBar = "Updating past months..." UpdateYesterday Application.StatusBar = False Application.DisplayStatusBar = intStatusState End If End Sub
(Hãy nhớ rằng thủ tục này là một ví dụ; nó sẽ không chạy đúng trên hệ thống của bạn vì nó gọi một hàm có tên là UpdateY hôm qua, hàm này thực hiện cập nhật thực tế.)
Macro này tự động chạy bất cứ khi nào mở sổ làm việc mà nó được đính kèm. Bạn cũng có thể sửa đổi mã và đặt nó trong đối tượng ThisWorkbook chỉ bằng cách thay đổi dòng đầu tiên thành:
Private Sub Workbook_Open()
Nhiều người coi việc sử dụng Auto_Open là “cách cũ” của loại macro này và Workbook_Open là “cách mới”. Theo một nghĩa nào đó là đúng; Phương thức Workbook_Open là một cách tiếp cận hướng đối tượng cho loại macro này hơn là Auto_Open. Tuy nhiên, trong thực tế, có rất ít sự khác biệt giữa hai điều này.
_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 (2289) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: