这是一个非常简单的小例程,用于对二维数组进行排序,例如范围:
Option Base 1
Option Explicit
Function SortThisArray(aryToSort)
Dim i As Long
Dim j As Long
Dim strTemp As String
For i = LBound(aryToSort) To UBound(aryToSort) - 1
For j = i + 1 To UBound(aryToSort)
If aryToSort(i, 1) > aryToSort(j, 1) Then
strTemp = aryToSort(i, 1)
aryToSort(i, 1) = aryToSort(j, 1)
aryToSort(j, 1) = strTemp
End If
Next j
Next i
SortThisArray = aryToSort
End Function
Run Code Online (Sandbox Code Playgroud)
如何使用此排序功能:
Sub tmpSO()
Dim aryToSort As Variant
aryToSort = Worksheets(1).Range("C3:D9").Value2 ' Input
aryToSort = SortThisArray(aryToSort) ' sort it
Worksheets(1).Range("G3:H9").Value2 = aryToSort ' Output
End Sub
Run Code Online (Sandbox Code Playgroud)
笔记:
Worksheet(1)在,Range("C3:D9")并且输出在同一张纸上Range("G3:H9")aryToSort(i, 1)和aryToSort(j, 1)列.例如,第2列:aryToSort(i, 2)和aryToSort(j, 2).如果您更喜欢使用上面的函数,那么这也可以这样:
Option Base 1
Option Explicit
Function SortThisArray(rngToSort As range)
Dim i As Long
Dim j As Long
Dim strTemp As String
Dim aryToSort As Variant
aryToSort = rngToSort.Value2
For i = LBound(aryToSort) To UBound(aryToSort) - 1
For j = i + 1 To UBound(aryToSort)
If aryToSort(i, 1) > aryToSort(j, 1) Then
strTemp = aryToSort(i, 1)
aryToSort(i, 1) = aryToSort(j, 1)
aryToSort(j, 1) = strTemp
End If
Next j
Next i
SortThisArray = aryToSort
End Function
Run Code Online (Sandbox Code Playgroud)
这就是你如何使用这个功能:
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |