Nếu bạn sử dụng vòng lặp For …​ Next trong lập trình macro của mình (ai không?), Thì bạn nên biết rằng chúng có thể mất rất nhiều thời gian. Bạn có thể giảm thiểu điều này bằng cách chỉ kiểm tra những gì bạn cần. Ví dụ: hãy xem xét đoạn mã sau, mã này kiểm tra một mảng để xem liệu có tồn tại giá trị hay không. Nếu không, thì nó sẽ thêm giá trị vào cuối mảng. Nếu có, thì giá trị không được thêm vào.

AddIt = False For J = 1 to NumEntries     If NumValues(J) = ToAdd Then AddIt = True Next J If AddIt Then     NumEntries = NumEntries + 1     NumValues(NumEntries) = ToAdd End If

Điều này hoạt động tốt, nhưng nếu mảng trở nên lớn, bạn có thể đi qua vòng lặp For …​ Next khá nhiều lần. Bây giờ hãy xem xét đoạn mã sau, mã này hoàn thành cùng một nhiệm vụ, nhưng thoát ra khỏi vòng lặp For …​ Next sớm nếu phát hiện thấy khớp.

AddIt = False For J = 1 to NumEntries     If NumValues(J) = ToAdd Then         AddIt = True         Exit For     End If Next J If AddIt Then     NumEntries = NumEntries + 1     NumValues(NumEntries) = ToAdd End If

Bây giờ nếu một kết quả khớp được tìm thấy sớm trong vòng lặp, tất cả phần còn lại của các lần lặp sẽ bị bỏ qua vì gặp phải câu lệnh Exit For và về cơ bản, vòng lặp được thoát ngay lập tức. Kết quả là một macro chạy nhanh hơn.

_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 (11335) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.

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: