红色部分关键点阐述:
如果用.Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 
-程序不通过,提示“属性的使用无效”换成adBString也同样提示
.Fields.Append RstFiledsName(ii),adInteger, , adFldMayBeNull --程序通过,可是只能排序integer(double)
只有adChar, 20,才能通过字符串排序。
请遇到此问题注意这一要点。Function CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
  Dim rst As ADODB.Recordset
  Set rst = New ADODB.Recordset
  'For ii = 0 To UBound(RstFiledsName)
    With rst
      .Fields.Append RstFiledsName(0), adChar, 20, adFldIsNullable
      .Fields.Append RstFiledsName(1), adBSTR, , adFldMayBeNull
    End With
  'Next ii
  Set CreatSelectionHeading = rst
End FunctionSub lsls()
  Dim rst As ADODB.Recordset
  nn = Array("a1", "a2")
  Set rst = CreatSelectionHeading(nn)
  With rst
    .Open
    .AddNew
    .Fields(0) = "aaa1"
    .Sort = "a1 asc"
  End With
End Sub

解决方案 »

  1.   

    结合上面rst数据集方法,对下面的多数数组进行排序。
    原数组: 
    10 5  13  24 
    3  55 43  2 
    30 51 113 21 
    按第1列排序结果 
    3  55 43  2 
    10 5  13  24 
    30 51 113 21 
    按第2列排序结果 
    10 5  13  24 
    30 51 113 21 
    3  55 43  2  
    按第3列排序结果 
    10 5  13  24 
    3