对Excel进行排序

  经过本人亲自测试,对Excel进行排序,如果用到一般的排序,如冒泡排序,这里效率非常低,即使经过反复优化的话,效率也难达到秒杀地步。(比如 Rows.Count  达到e4的数量级时),如果直接使用VBA那就能实现高效排序:

  升序:

Sub MacroPinyin_Ascend()
'
' Macro1 Macro
' 宏由 Chenwb 录制,时间: 2013-9-22
'
  '表1 双字节区的21003汉字
  '按照GB8030编码增序排列
  Dim lRow As Long
  Dim lCol As Long
  Dim myRng As Range
    With Worksheets("Sheet1")
      lRow = Cells(Rows.Count, 1).End(xlUp).Row
      lCol = Cells(1, "G").Column
      Set myRng = .Range(Cells(1, 1), Cells(lRow, lCol))
      myRng.Sort _
        Key1:=.Range("A1"), _
        Order1:=xlAscending, _
        Header:=xlYes, _
        Orientation:=xlTopToBottom
    End With
'
End Sub

 降序:

Sub MacroPinyin_Descend()
'
' Macro2 Macro
' 宏由 Chenwb 录制,时间: 2013-9-22
'
  '表1 双字节区的21003汉字
  '按照GB8030编码减序排列
  Dim lRow As Long
  Dim lCol As Long
  Dim myRng As Range
    With Worksheets("Sheet1")
      lRow = Cells(Rows.Count, 1).End(xlUp).Row
      lCol = Cells(1, "G").Column
      Set myRng = .Range(Cells(1, 1), Cells(lRow, lCol))
      myRng.Sort _
        Key1:=.Range("A1"), _
        Order1:=xlDescending, _
        Header:=xlYes, _
        Orientation:=xlTopToBottom
    End With
'
End Sub

 

posted @ 2013-09-22 08:54  陳さん様  阅读(308)  评论(0编辑  收藏  举报