Quang_Hải
Thành viên gạo cội




- Tham gia
- 21/2/09
- Bài viết
- 6,076
- Được thích
- 8,007
- Nghề nghiệp
- Làm đủ thứ
Vì 1 lý do nào đó chúng ta buộc phải sort trực tiếp trong mảng. Nhưng nếu ta có 1 vùng dữ liệu khoảng 1000 dòng và 5 cột thì sau khi duyệt qua hết vùng dữ liệu để sắp xếp thì mất hơn 7 triệu lần. Xin hỏi có cách nào để rút ngắn số lần duyệt dữ liệu hay không?
Mã:
Sub Sort_in_Arr()
Dim i As Long, j As Long, ii As Long
Dim Temp(), Arr(), k
Arr = Range([A1], [A1000]).Resize(, 5).Value
ReDim Temp(1 To 1, 1 To UBound(Arr, 2))
For i = 1 To UBound(Arr) - 1
For j = 1 To UBound(Arr) - 1
If Arr(j, 1) > Arr(j + 1, 1) Then
For ii = 1 To 5
k = k + 1
Temp(1, ii) = Arr(j, ii)
Next
For ii = 1 To 5
k = k + 1
Arr(j, ii) = Arr(j + 1, ii)
Next
For ii = 1 To 5
k = k + 1
Arr(j + 1, ii) = Temp(1, ii)
Next
End If
Next
Next
[F1].Resize(i, UBound(Arr, 2)) = Arr
MsgBox k
End Sub