Macro thường được tạo để xử lý dữ liệu và việc xử lý dữ liệu thường có thể mất nhiều thời gian. Do đó, một số người dùng có thể nghĩ rằng máy tính của họ đã ngừng phản hồi, mặc dù macro đang bận xử lý một nhiệm vụ được chỉ định.

Giải pháp cho hầu hết các nhà phát triển macro là bằng cách nào đó cảnh báo người dùng về tiến trình của macro. Có hai cách để bạn có thể thực hiện việc này trong Excel. Cách tiếp cận đơn giản và phổ biến nhất là sử dụng thanh trạng thái để cho biết macro đang làm gì. Tất cả những gì bạn cần làm là tập hợp một chuỗi có chứa thông báo trạng thái, sau đó gán chuỗi đó cho thuộc tính StatusBar của đối tượng Application, như được hiển thị ở đây:

sStatus = "Processing Input File - Please Be Patient"

Application.StatusBar = sStatus

Tin nhắn vẫn ở trên thanh trạng thái cho đến khi bạn ghi đè nó bằng một số tin nhắn khác. Bạn cũng có thể chỉ ra tiến trình trong một vòng lặp bằng cách đưa ra phần trăm hoàn thành:

For x = 1 to y     Application.StatusBar = Format(x/y,"0.0%") & " Complete"

' Other coding here Next

Khi quy trình của bạn kết thúc, hãy trả thanh trạng thái trở lại bình thường với câu lệnh sau:

Application.StatusBar = False

Nếu bạn muốn phát triển chỉ báo tiến độ thực tế cho macro, bạn có thể làm như vậy bằng cách tạo UserForm và sau đó cập nhật biểu mẫu để hiển thị “thanh phần trăm” hoặc một số chỉ báo trực quan khác. Hầu hết những người mong muốn loại chỉ báo tiến trình này dựa trên một biến thể của giải pháp John Walkenbach, được tìm thấy tại địa chỉ này:

http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/

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