Mảng sắp xếp VBA

Hướng dẫn này sẽ trình bày cách sắp xếp các giá trị trong một mảng trong VBA

Sắp xếp mảng một chiều bằng vòng lặp

Sắp xếp một Mảng yêu cầu một chút thao tác dữ liệu bằng cách sử dụng vòng lặp, biến và mảng tạm thời.

  • Trước tiên, bạn cần điền các giá trị của mình vào mảng
  • Sau đó, bạn cần lặp qua mảng hai lần! Một lần để lấy giá trị từ mảng phần tử hiện tại và trong khi vẫn ở trong vòng lặp đó, để lấy giá trị của phần tử tiếp theo trong mảng.
  • Sau đó, bạn cần so sánh các phần tử - và di chuyển phần tử thứ 2 sang vị trí của phần tử đầu tiên nếu phần tử thứ 2 được xếp theo thứ tự bảng chữ cái TRƯỚC phần tử thứ nhất.

Ví dụ dưới đây minh họa quy trình này.

1234567891011121314151617181920212223 Sub SortAnArray ()Dim i As Long'Đặt mảngDim strName () Làm biến thểDim Temp As Variant'điền vào mảngstrName () = Array ("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")'lặp qua giới hạn của arry và nhận được tên đầu tiênĐối với i = LBound (strName) Đến UBound (strName) - 1'lặp lại một lần nữa và kiểm tra xem tên tiếp theo được xếp theo thứ tự bảng chữ cái trước hay sau tên gốcĐối với j = i + 1 Tới UBound (strName)Nếu UCase (strName (i))> UCase (strName (j)) Thì'nếu tên cần được di chuyển trước tên trước đó, hãy thêm vào một mảng tạm thờiTemp = strName (j)'swap những cái tênstrName (j) = strName (i)strName (i) = Nhiệt độKết thúc nếuTiếp theo jTiếp theo tôi'Đầu ra Mảng thông qua một hộp thông báoMsgBox Tham gia (strName (), vbCrLf)Kết thúc Sub

Nếu bạn chạy quy trình này, bạn sẽ nhận được hộp thông báo sau.

Bạn cũng có thể sắp xếp mảng theo hướng khác - ví dụ: Z thành A bằng cách thay đổi dòng mã này

1 Nếu UCase (strName (i))> UCase (strName (j)) Thì

dòng mã này

1 Nếu UCase (strName (i)) <UCase (strName (j)) Thì

Sau đó, bạn sẽ nhận được hộp thông báo sau.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave