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.

Trên thực tế, Excel cung cấp hai cách khác nhau để bạn có thể chạy một thủ tục khi một sổ làm việc được mở. Trong cả hai trường hợp, tất cả những gì bạn cần làm là cung cấp một tên đặc biệt cho macro; đó là manh mối cho Excel biết bạn muốn chạy quy trình khi mở. Nếu muốn, bạn có thể đặt tên cho thủ tục là Auto_Open và đặt nó trong một mô-đun macro thông thường. Bạn cũng có thể xác định một thủ tục được gọi là Workbook_Open trong đối tượng ThisWorkbook.

Ví dụ, hãy xem xét đoạn mã sau:

Sub Auto_Open()

Dim sMsg As String     Dim iBoxType As Integer     Dim iUpdate As Integer     Dim sDefault As String     Dim sOldFile As String     Dim iStatusState As Integer

sMsg = "Do you want to save yesterday's transactions?"

iBoxType = vbYesNo + vbQuestion     iUpdate = MsgBox(sMsg, iBoxType, "Automatic Backup")

If iUpdate = vbYes Then         sMsg = "Which filename would you like use?"

sDefault = "OLD.DAT"

sOldFile = InputBox(sMsg, "Automatic Backup", sDefault)

iStatusState = Application.DisplayStatusBar         Application.DisplayStatusBar = True         Application.StatusBar = "Updating past months..."

UpdateYesterday(sOldFile)

Application.StatusBar = False         Application.DisplayStatusBar = iStatusState     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()

_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 (8451) á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: