VBA实现的数组快速排序
下面的VBA代码实现了快速排序算法,可以对一个数组进行排序。数组元素的类型可以是数值或者字符串,实行排序后,原输入数组便会按照要求排好序,这意味着这个函数会对原数组修改。QSortInPlace函数可以对数值或者字符串数组按要求升序或者降序进行排列。QSortInPlace的原型声明如下:
Public Function QSortInPlace( _
ByRef InputArray As Variant, _
Optional ByVal LB As Long = -1&, _
Optional ByVal UB As Long = -1&, _
Optional ByVal Descending As Boolean = False, _
Optional ByVal CompareMode As VbCompareMethod = vbTextCompare, _
Optional ByVal NoAlerts As Boolean = False) As Boolean
函数各参数意义如下:
InputArray: 待排序的数组。
LB: 需要排序的第一个元素索引,-1表示从数组默认的第一个元素。
UB: 需要排序的最后元素索引,-1表示从数组默认的最后一个元素。
Descending: 如果输入False或者忽略则按照升序排列,输入True按照降序进行排列。
CompareMode: 可以指定是否依据大小写来进行字符串的比较。
NoAlerts: 出现错误时是否会提示。
QSortInPlace在对数组成功排序后返回True,如果发生错误返回False。
具体VBA代码模块


