- Tham gia
- 13/6/06
- Bài viết
- 4,737
- Được thích
- 10,243
- Giới tính
- Nam
- Nghề nghiệp
- Giáo viên, CEO tại Bluesofts
Mình sắp xếp tên theo vần A,B, C, nhưng các cột còn lại không đổi theo, tôi có làm thiếu bước nào không nhỉ ??
Thử file này xem:Em đã tải về và sắp xếp, nhưng chỉ xếp đợc theo thứ tự giảm dần chứ không xếp được theo thứ tự tăng dần. làm thế nào để xếp được theo thứ tự tăng dần ạ?
Sub SortSheet(Order As Boolean)
Dim i As Long, j As Long
Application.ScreenUpdating = False
For i = 1 To Sheets.Count - 1
For j = i + 1 To Sheets.Count
If Sheets(IIf(Order, j, i)).Name < Sheets(IIf(Order, i, j)).Name Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
Sub Main()
Dim TB As Long
TB = MsgBox("Ban muon sort tang hay giam dan?" & vbLf & _
"Bam 'YES' de sort tang dan" & vbLf & _
"Bam 'NO' de sort giam dan", 4)
SortSheet (TB = 6)
End Sub
---Thử file này xem:
PHP:Sub SortSheet(Order As Boolean) Dim i As Long, j As Long Application.ScreenUpdating = False For i = 1 To Sheets.Count - 1 For j = i + 1 To Sheets.Count If Sheets(IIf(Order, j, i)).Name < Sheets(IIf(Order, i, j)).Name Then Sheets(j).Move Before:=Sheets(i) End If Next j Next i Application.ScreenUpdating = True End Sub
PHP:Sub Main() Dim TB As Long TB = MsgBox("Ban muon sort tang hay giam dan?" & vbLf & _ "Bam 'YES' de sort tang dan" & vbLf & _ "Bam 'NO' de sort giam dan", 4) SortSheet (TB = 6) End Sub
Anh để ý code của em có đoạn:---
Anh có 1 file có khoảng 70 sheet, 10 sheet đầu tiên được sắp xếp theo trình tự nhập liệu, do không muốn người xử dụng thay đổi vị trí các sheet này ( 10 sheet đầu tiên ) , không biết chú có thể viết giúp code này được không ? 60 sheet còn lại được sắp xếp thứ tự tăng dần hay giảm dần đều được. Mong chú rõ, Cám ơn.
---Anh để ý code của em có đoạn:
For i = 1 To Sheets.Count - 1
Tức sort từ sheet đầu tiên... trong khi anh lại muốn sort từ sheet thứ 11 trở đi ---> Vậy cách đơn giản là sửa code trên thành:
For i = 11 To Sheets.Count - 1
Muốn tổng quát hơn, tức có thể sort bất kỳ nhóm sheet nào thì phải sửa code lại khá nhiều
10 sheet đầu tiên được sắp xếp theo trình tự nhập liệu, do không muốn người xử dụng thay đổi vị trí các sheet này ( 10 sheet đầu tiên )
Thật ra cũng đã làm rồi, em đưa lên cho anh tham khảo ---> Với file đính kèm dưới đây anh có thể sort bất kỳ nhóm sheet nào anh muốn---
Cám ơn chú, vậy là giải quyết được vấn đề sắp xếp từ sheet thứ 11 trở đi. Nếu chú thấy khả thi thì còn việc cố định 10 sheet đầu có gặp trở ngại không ?
NDU viết giúp code sort sheets thêm phần theo màu tô. (tab color).Thật ra cũng đã làm rồi, em đưa lên cho anh tham khảo ---> Với file đính kèm dưới đây anh có thể sort bất kỳ nhóm sheet nào anh muốn
- Mở file lên và bấm Ctrl + Shift + S để gọi form
- Một form hiện ra như hình:
View attachment 46070
- Dùng chuột chọn 1 sheet trong ListBox rồi bấm giữ Ctrl và chọn thêm sheet khác... Cũng có thể chọn sheet đầu, giữ phím Shift và chọn sheet cuối (nếu các sheet nằm liên tục nhau)
- Tiếp theo chọn kiểu sort tăng dần hay giảm dần bằng cách check vào Option Button
- Cuối cùng là bấm nút Sort
- Code này có thể lưu lại thành 1 Add-In để dùng lâu dài
(code của em cũng chưa tối ưu lắm... để từ từ cải tiến thêm)
Ý ThuNghi là sao? Là sort theo màu sắc hay chỉ thêm phần tô màu khi sort?NDU viết giúp code sort sheets thêm phần theo màu tô. (tab color).
Vd: theo thứ tự Xanh, đỏ, vàng...
Dùng cả cho Ex 03 và 07.
Cám ơn.
Sort theo màu sắc, màu đã tô cho sh.Ý ThuNghi là sao? Là sort theo màu sắc hay chỉ thêm phần tô màu khi sort?
- Nếu là sort theo màu sắc thì phải viết lại toàn bộ code
- Nếu chỉ là thêm màu sắc trong khi sort thì dễ mà ---> thêm vào code Sheets(...).Tab.ColorIndex = ???