Trong bài viết này, chúng tôi đã cung cấp chi tiết về cách sắp xếp các trang tính trong sổ làm việc theo thứ tự tăng dần hoặc giảm dần, tùy thuộc vào tên trang tính.

Trong sổ làm việc đính kèm, có hai mô-đun: – Mô-đun1 chứa macro “SortWorksheets” được gán cho nút “Gửi” trên trang tính “Macro”.

Macro này sắp xếp tất cả các trang tính ngoại trừ trang tính đầu tiên là trang tính chính có tên là “Macro”.

Khi người dùng nhấp vào nút “Gửi”, tất cả các trang tính sau trang tính “Macro” sẽ được sắp xếp theo thứ tự tăng dần hoặc giảm dần do người dùng chọn trong hộp tổ hợp.

ArrowSortingOrder

Module2 chứa hai macro “AscendingSortOfWorksheets” và “DecendingSortOfWorksheets”. Khi chạy macro “AscendingSortOfWorksheets”, nó sẽ sắp xếp tất cả các trang tính có trong sổ làm việc theo thứ tự tăng dần. Khi chạy macro “DecendingSortOfWorksheets”, nó sẽ sắp xếp tất cả các trang tính có trong sổ làm việc theo thứ tự giảm dần.

Giải thích logic

Thuật toán sắp xếp bong bóng được sử dụng để sắp xếp các trang tính trong sổ làm việc.

Thuật toán sắp xếp bong bóng so sánh từng mục trong mảng với các mục khác trong mảng và hoán đổi chúng tùy thuộc vào việc sắp xếp theo thứ tự tăng dần hay giảm dần. Trong mỗi bước, nó sẽ bong bóng giá trị nhỏ nhất hoặc lớn nhất lên đầu mảng. Thuật toán lặp lại cho đến khi tất cả các mục được sắp xếp.

Trong bài viết này, mục tiêu của chúng tôi là sắp xếp các trang tính trong sổ làm việc theo tên của chúng. Workbook mà chúng tôi đang sử dụng bao gồm các bảng tính khác nhau có tên như Bảng điều khiển tài chính, Nguồn nhân lực và Bảng điều khiển bán hàng.

ArrowRawData

Để đạt được mục tiêu này, chúng tôi đã sử dụng thuật toán sắp xếp Bong bóng để sắp xếp các trang tính.

Giải thích mã

SortWorksheets Macro

Macro này sẽ chạy khi người dùng nhấp vào nút gửi. Macro này sẽ sắp xếp tất cả các trang tính trong sổ làm việc theo tên của chúng ngoại trừ trang tính đầu tiên trong sổ làm việc. Tùy thuộc vào giá trị được người dùng chọn trong hộp tổ hợp, nó sẽ sắp xếp các trang tính theo thứ tự tăng dần hoặc giảm dần.

Để thêm hộp kết hợp, hãy làm theo các bước sau: -. Chuyển đến tab Nhà phát triển> Nhấp vào Chèn> Nhấp vào biểu tượng hộp tổ hợp dưới điều khiển biểu mẫu

ArrowInsertingCombobox

  1. Nhấp chuột phải vào hộp tổ hợp và nhấp vào điều khiển định dạng.

ArrowFormattingControl

  1. Chuyển đến tab điều khiển, Gán mục và liên kết hộp tổ hợp với ô XFC1.

ComboBoxValue = Range (“XFC1”). Hộp Tổ hợp giá trị trên trang tính “Macro” được liên kết với ô XFC1. Vì vậy, để nhận giá trị từ ô XFC1, biến ComboBoxValue được sử dụng.

For i = 2 To SCount – 1 Vòng lặp FOR bắt đầu với biến i, giá trị bắt đầu từ 2 vì chúng ta muốn loại trừ trang tính đầu tiên của sổ làm việc khỏi việc sắp xếp.

Nếu ComboBoxValue = 1 Thì điều kiện IF được sử dụng để kiểm tra xem nên sắp xếp theo thứ tự tăng dần hay giảm dần. Nếu giá trị ComboBoxValue là 1 thì sắp xếp theo thứ tự tăng dần, ngược lại là thứ tự giảm dần.

Các bảng tính được sắp xếp theo thứ tự tăng dần

ArrowAscendingOrder

Các bảng tính được sắp xếp theo thứ tự giảm dần

ArrowDescendingOrder

AscendingSortOfWorksheets và DecendingSortOfWorksheets

Có thể chạy macro AscendingSortOfWorksheets và DecendingSortOfWorksheets bằng cách nhấn tổ hợp phím tắt Alt + F8 hoặc Chuyển đến tab Nhà phát triển> Nhấp vào Macro> chọn macro và nhấp vào chạy. Họ sẽ sắp xếp tất cả các trang tính có bên trong sổ làm việc. Các macro này cũng có thể chạy trên các sổ làm việc khác.

Các bảng tính được sắp xếp sau khi chạy macro AscendingSortOfWorksheets

ArrowAscendingCompleteSort

Các bảng tính được sắp xếp theo thứ tự tăng dần Macro DecendingSortOfWorksheets

ArrowDescendingCompleteSort

Vui lòng theo dõi bên dưới để biết mã

Sub AscendingSortOfWorksheets()

'Sort worksheets in a workbook in ascending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name < Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Sub DecendingSortOfWorksheets()

'Sort worksheets in a workbook in descending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name > Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]