Khi bạn đang làm việc trong Excel, có một chút “mạng lưới an toàn” liên quan đến những thay đổi bạn thực hiện. Hầu hết mọi người đều biết rằng nếu họ làm mọi thứ lộn xộn, họ có thể nhanh chóng nhấn Ctrl + Z hoặc chọn lệnh Hoàn tác từ trình đơn Chỉnh sửa hoặc bằng cách sử dụng công cụ Hoàn tác trên thanh công cụ. Nếu bạn không thích những gì bạn vừa làm, bạn có thể dễ dàng hoàn tác và quay trở lại như trước.

Tuy nhiên, khi bạn chạy macro, macro không “hoạt động tốt” với danh sách Hoàn tác. Trên thực tế, việc chạy macro sẽ xóa hoàn toàn danh sách Hoàn tác, và do đó bạn không thể tự động hoàn tác các tác động của việc chạy macro. Không có lệnh nội tại nào — trong Excel hoặc trong VBA — để duy trì danh sách Hoàn tác. Tuy nhiên, có một số cách mà bạn có thể tiếp cận vấn đề.

Nếu bạn cảm thấy rằng bạn có thể muốn hoàn tác các tác động của macro, điều đầu tiên bạn có thể làm là lưu sổ làm việc của mình trước khi chạy macro. Trên thực tế, điều này cung cấp cho bạn phiên bản “tiền macro” của sổ làm việc.

Nếu sau đó bạn muốn hoàn nguyên về phiên bản này, chỉ cần đóng sổ làm việc mà không cần lưu rồi tải lại từ đĩa.

Một tùy chọn khác là suy nghĩ lại cách bạn thực hiện macro của mình. Nếu bạn có một macro xử lý nhiều thông tin trong trang tính của mình, hãy viết mã macro để nó duy trì trạng thái của bất kỳ thứ gì mà nó thay đổi trong bộ nhớ. Sau đó, bạn có thể tạo một macro riêng biệt đọc thông tin này và hoàn tác hiệu quả các tác động của macro đầu tiên.

Để làm cho cách tiếp cận này thực sự hữu ích, bước cuối cùng trong macro chính của bạn có thể là “nhồi” thông tin vào ngăn xếp Hoàn tác. Sau đó, thông tin này có thể được sử dụng, nhưng người dùng, để “hoàn tác” macro mà bạn đã tạo. Ví dụ: lệnh macro sau có thể là lệnh cuối cùng trong macro chính của bạn:

Application.OnUndo "Primary Macro", "UndoPrimary"

Sau lệnh này, khi người dùng nhìn vào danh sách Hoàn tác, họ sẽ thấy dòng chữ “Macro chính”. Nếu họ chọn tùy chọn này từ danh sách Hoàn tác, thì macro “hoàn tác” (UndoPrimary) của bạn sẽ được thực thi.

Bạn nên lưu ý rằng phương pháp này không lưu những gì có trong danh sách Hoàn tác trước khi bạn chạy macro — dường như không có cách nào để làm điều đó. Khi macro chính của bạn đang chạy, sẽ chỉ có một tùy chọn duy nhất có sẵn trên danh sách Hoàn tác: Macro chính.

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