For X = 起限 To 迄限
原始一維陣列(X) = 複製原始一維陣列(索引陣列(X))
Next X
End Sub
Public Sub S_二維陣列依自訂清單穩定排序_01(ByRef 原始二維陣列 As Variant, ByVal 排序維度 As Long, ByVal 排序鍵值 As Long, ByVal 起限 As Long, ByVal 迄限 As Long, ByVal 自訂清單陣列 As Variant)
If 排序維度 = 1 Then
For X = 起限 To 迄限
For Y = LBound(原始二維陣列, 2) To UBound(原始二維陣列, 2)
原始二維陣列(X, Y) = 複製原始二維陣列(索引陣列(X), Y)
Next Y
Next X
Else
For Y = 起限 To 迄限
For X = LBound(原始二維陣列, 1) To UBound(原始二維陣列, 1)
原始二維陣列(X, Y) = 複製原始二維陣列(X, 索引陣列(Y))
Next X
Next Y
End If
End Sub
Private Sub 一維陣列依自訂清單穩定排序(ByRef 原始一維陣列 As Variant, ByRef 索引陣列() As Long, ByVal 起限 As Long, ByVal 迄限 As Long, ByVal 自訂清單陣列 As Variant)
For X = 起限 To 迄限
If 自訂清單字典.Exists(原始一維陣列(X)) = True Then
自訂清單字典(原始一維陣列(X)) = 自訂清單字典(原始一維陣列(X)) + 1
索引陣列(X) = 自訂清單字典(原始一維陣列(X))
Else
自訂清單字典("Key_Not_Exist") = 自訂清單字典("Key_Not_Exist") + 1
索引陣列(X) = 自訂清單字典("Key_Not_Exist")
End If
Next X
For X = 起限 To 迄限
If 自訂清單字典.Exists(原始一維陣列(X)) = True Then
索引陣列(X) = 索引陣列(X) + 自訂清單累積數字典(原始一維陣列(X))
Else
索引陣列(X) = 索引陣列(X) + 自訂清單累積數字典("Key_Not_Exist")
End If
Next X