Hỏi cách sắp xếp lại dữ liệu trong comboBox

  • Thread starter Thread starter herovn
  • Ngày gửi Ngày gửi
Liên hệ QC

herovn

Thành viên mới
Tham gia
28/8/09
Bài viết
5
Được thích
1
Cho mình hỏi, hiện mình đang có một cột dữ liệu được sắp xếp theo thứ tự A -> Z, mình muốn đưa dữ liệu này vào comboBox trong Userform nhưng hiện thị theo thứ tự Z -> A thì phải làm thế nào?
 
Cũng còn tuỳ vào cách nạp Combo nữa để có cách cụ thể
 
Upvote 0
Bạn sort dữ liệu gốc từ Z->A là ok thôi

Vấn đề nằm ở chỗ dữ liệu nếu sort theo Z -> A thì ko thuận tiện cho việc cập nhập, theo dõi, cũng như ảnh hưởng đến nhiều vấn đề khác, cái mình muốn vẫn là dữ liệu xếp theo A -> Z nhưng chỉ trong combobox mới hiện thị Z -> A thôi.
 
Upvote 0
Vấn đề nằm ở chỗ dữ liệu nếu sort theo Z -> A thì ko thuận tiện cho việc cập nhập, theo dõi, cũng như ảnh hưởng đến nhiều vấn đề khác, cái mình muốn vẫn là dữ liệu xếp theo A -> Z nhưng chỉ trong combobox mới hiện thị Z -> A thôi.
Đại khái thế này đi
PHP:
Private Function RevList(Range As Range)
  Dim Clls As Range, i As Long
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For i = Range.Count To 1 Step -1
      .Add i, Range(i).Value
    Next
    RevList = .Items
  End With
End Function
PHP:
Private Sub UserForm_Initialize()
  ComboBox1.List = RevList(Sheet1.Range("A1:A30"))
End Sub
Chưa hoàn hảo lắm nhưng bạn có thể từ đây cải tiến thêm!
 

File đính kèm

Upvote 0
Bạn tham khảo 1 cách sắp xếp
 

File đính kèm

Upvote 0
Bạn tham khảo 1 cách sắp xếp
Sort dử liệu luôn là phương pháp nhanh nhất, tuy nhiên nếu vùng dử liệu là công thức thì không dùng cách này được!
-----------------
Thêm 1 chuyện nữa: Sort tăng dần hay giảm dần chỉ khác nhau có 1 chổ Order = 1 hoặc 2 ---> Vậy anh dùng 2 sub hình như hơi thừa
Có thể làm vầy chăng:
PHP:
Private Sub CheckBox1_Click()
  Dim Check As Boolean
  Check = CheckBox1.Value
  Label1.Caption = IIf(Check, "Giam dan", "Tang dan")
  Nap Check
End Sub
PHP:
Private Sub UserForm_Initialize()
  CheckBox1 = False
  Label1.Caption = "Tang dan"
  Nap False
End Sub
PHP:
Sub Nap(Order As Boolean)
  Dim Temp
  With Sheet1.Range("A1:A26")
    Temp = .Cells.Value
    .Sort .Cells(1, 1), 1 - Order
    ComboBox1.List = .Cells.Value
    .Value = Temp
  End With
End Sub
 

File đính kèm

Upvote 0
To: ndu96081631, sealand
Các bạn có thể mở rộng thêm trong trường hợp dữ liệu gốc bất kỳ (không sắp xếp) nhưng trong listbox thì sắp xếp A-Z (hoặc Z-A) ?
Thực tế, nhiều trường hợp không cho phép sort trong bảng được. Nhưng trong listbox cần sắp xếp để dễ tìm, ...
 
Upvote 0
To: ndu96081631, sealand
Các bạn có thể mở rộng thêm trong trường hợp dữ liệu gốc bất kỳ (không sắp xếp) nhưng trong listbox thì sắp xếp A-Z (hoặc Z-A) ?
Thực tế, nhiều trường hợp không cho phép sort trong bảng được. Nhưng trong listbox cần sắp xếp để dễ tìm, ...
Vâng! Em nghĩ cách dể nhất là copy dử liệu sang 1 cột khác rồi dùng sort xử lý
Vẫn có cách xử lý trực tiếp vào dử liệu (sort mãng), tuy nhiên em vẫn ngán nhất là Sort tiếng Việt có dấu thầy à!
 
Upvote 0
Bài này mình viết đêm qua nhưng không sao gửi được. Mình viết 2 hàm sắp xếp mảng Tăng-Giảm trước khi nạp vào Combo. Như vậy nó không lệ thuộc hay làm ảnh hưởng tới dữ liệu gốc.
Các bạn tham khảo nha.
 

File đính kèm

Upvote 0
Bài này mình viết đêm qua nhưng không sao gửi được. Mình viết 2 hàm sắp xếp mảng Tăng-Giảm trước khi nạp vào Combo. Như vậy nó không lệ thuộc hay làm ảnh hưởng tới dữ liệu gốc.
Các bạn tham khảo nha.
Vẫn như bài trước, 2 Function này có thể gộp thành 1 anh à, theo kiểu
PHP:
Function SortArray(MyArray, Order As Boolean)
.......
End Function
Tuy nhiên em vẫn chưa biết nó có thể sort được tiếng Việt có dấu hay không?
 
Upvote 0
Vẫn như bài trước, 2 Function này có thể gộp thành 1 anh à, theo kiểu
PHP:
Function SortArray(MyArray, Order As Boolean)
.......
End Function
Tuy nhiên em vẫn chưa biết nó có thể sort được tiếng Việt có dấu hay không?
Có thể sort tiếng Việt được vì GPE đã có nhiều hàm hỗ trợ sắp xếp tiếng Việt. Ví dụ sort Unicode thì có hàm SortUni
Mã:
temp=SortUni(mang(i,1)
If temp> SortUni(mang(j,1) then
...
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom