Thoát khỏi vòng lặp cho … Sớm vòng lặp tiếp theo (Microsoft Excel)
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: