Sắp xếp thứ tự Sheet bằng VBA
(Thủ thuật VBA Excel) – Việc hỗ trợ sắp xếp trong Excel rất mạnh, ngoài việc cung cấp chức năng sắp xếp thứ tự theo giá trị, người sử dụng còn có thể chọn cho mình những lựa chọn khác như: màu chữ, màu nền. Với công cụ sắp xếp này người sử dụng có thể dễ dàng sắp xếp thứ tự bảng, danh sách theo mong muốn của mình.
Xem những Video hay dành cho thiếu nhi – Nghe trên Youtube
Vậy tôi có 1 Workbook có chứa nhiều Sheet, bây giờ tôi muốn sắp xếp thứ tự các Sheet này theo thứ tự ABC để tiện cho việc truy cập và làm việc. Hiện trong Excel chưa có tính năng có sẵn để hỗ trợ thực hiện công việc này! Tuy nhiên ta vẫn có thể sắp xếp các Sheet theo mong muốn bằng cách sử dụng VBA.
1. Khởi động Microsoft Excel.
2. Nhấn ALT + F11 để bắt đầu Visual Basic Editor.
Vào Menu InserModule
3. Nhập toàn bộ đoạn mã sau vào
Sub SortSheetOnWorkbook()
Dim i As Integer
Dim j As Integer
Dim iMsg As VbMsgBoxResult
iMsg = MsgBox(“Ban co muon sap xep thu tu cac Sheet khong?” & Chr(10) & “Chon Yes de sap xep tang dan” & Chr(10) & “Kich No de sap xep giam dan” & Chr(10) & “Kich Cancel de huy”, vbYesNoCancel + vbInformation + vbDefaultButton2, “Sap xep Sheet”)
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count – 1
Select Case iMsg
Case vbYes
If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
Case vbNo
If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
End Select
Next j
Next i
End Sub
Dim i As Integer
Dim j As Integer
Dim iMsg As VbMsgBoxResult
iMsg = MsgBox(“Ban co muon sap xep thu tu cac Sheet khong?” & Chr(10) & “Chon Yes de sap xep tang dan” & Chr(10) & “Kich No de sap xep giam dan” & Chr(10) & “Kich Cancel de huy”, vbYesNoCancel + vbInformation + vbDefaultButton2, “Sap xep Sheet”)
For i = 1 To Sheets.Count
For j = 1 To Sheets.Count – 1
Select Case iMsg
Case vbYes
If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
Case vbNo
If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
Sheets(j).Move After:=Sheets(j + 1)
End If
End Select
Next j
Next i
End Sub
4. Quay trở lại màn hình Excel và sử dụng VBA vừa tạo
– Vào Menu ViewMacrosView Macros
– Chọn Macro SortSheetOnWorkbook
– Kích nút Run
Khi chạy Macro, nếu chọn Yes thì sẽ sắp xếp theo thứ tự tăng dần, nếu No là theo thứ tự giảm dần.
Sau khi chạy xong, Macro sẽ tự động sắp xếp các Sheet theo thứ tự tăng hoặc giảm dần do người dùng lựa chọn. Dưới đây là kết quả sau khi thực hiện Macro.
Tin học văn phòng