Các vấn đề khác của ExcelTips đã cung cấp các cách mà bạn có thể sắp xếp các trang tính trong sổ làm việc của mình dựa trên tên trang tính. Tuy nhiên, điều gì sẽ xảy ra nếu bạn muốn sắp xếp các trang tính dựa trên một giá trị trong một ô nhất định của mỗi trang tính? Ví dụ: bạn có thể có một loạt các trang tính chia sẻ cùng một bố cục chung và bạn muốn các trang tính được sắp xếp dựa trên giá trị trong ô H7 của mỗi trang tính.

Cách duy nhất để xử lý điều này là sử dụng macro. Macro cần phải đi qua từng trang tính trong sổ làm việc, sau đó kiểm tra ô khóa trong mỗi trang tính tiếp theo để xem nó so sánh như thế nào. Nếu giá trị ô nhỏ hơn trang tính hiện tại, thì trang tính có chứa giá trị nhỏ hơn có thể được di chuyển.

Sub SortWksByCell()

Dim i As Integer     Dim j As Integer

For i = 1 To Worksheets.Count         For j = i To Worksheets.Count             If UCase(Worksheets(j).Range("H7")) < _               UCase(Worksheets(i).Range("H7")) Then                 Worksheets(j).Move Before:=Worksheets(i)

End If         Next     Next End Sub

Lưu ý việc sử dụng phương thức Move, phương thức này thực hiện chuyển động thực tế của các trang tính. Tên của các trang tính không quan trọng, chỉ có vị trí của chúng dựa trên giá trị trong ô H7 của mỗi trang tí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 (2890) á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: