昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2009-01-07, 04:47:21
世界展望會助學計劃
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  陣列排序 / Sorting Array / Sort Array
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: 陣列排序 / Sorting Array / Sort Array  (閱讀 2065 次)
leonchou
論壇維護群
*
離線 離線

文章: 1204


陣列排序 / Sorting Array / Sort Array
« 於: 2005-06-01, 01:32:08 »

這是一個朋友寫的,分享給大家。

借用WorksheetFunction.Small 或 WorksheetFunction.Large來排序字串 & 數值 --
 
Sub Sort_Array()
  Dim SrcWord()
  N = Len([B3].Value): ReDim SrcWord(N)
  For i = 1 To N
   SrcWord(i) = CLng("&H" & Hex(AscW(Mid([B3], i, 1))))
   '非常非常非常重要的一件事:
   '上面的 CLng("&H" & Hex....) 看似多此一舉,卻是絕對必要的。
   '因為,有些字的Unicode已超過32,767;若用Val來轉的話會出錯;
   '連帶使下面排列大小的結果也跟著出錯。

  Next
  For i = 1 To N
   KAns = KAns & ChrW(WorksheetFunction.Small(SrcWord, i))
  Next
  MsgBox KAns
End Sub

Function Sort_by_Unicode(SrcCell As Range) '照Unicode排序
  Dim SrcWord()
  N = Len(SrcCell.Value): ReDim SrcWord(N)
  For i = 1 To N
   SrcWord(i) = CLng("&H" & Hex(AscW(Mid(SrcCell, i, 1))))
  Next
  For i = 1 To N
   Sort_by_Unicode = Sort_by_Unicode & _
    ChrW(WorksheetFunction.Small(SrcWord, i))
  Next
End Function

Function Sort_by_Big5(SrcCell As Range) '照BIG-5碼排序
  Dim SrcWord()
  N = Len(SrcCell.Value): ReDim SrcWord(N)
  For i = 1 To N
   SrcWord(i) = Asc(Mid(SrcCell, i, 1))
  Next
  For i = 1 To N
   Sort_by_Big5 = Sort_by_Big5 & _
    Chr(WorksheetFunction.Small(SrcWord, i))
  Next
End Function

另發現有人寫好的bas (mdlArray.bas, 如附件) 內容很豐富...
可直接應用其提供的程序也蠻好用的, 例 --
(1) ShellSortAny' Sorts the array.
(2) ShellSortLong' Sorts the long array.
(3) ShellSortString' Sorts the string array.

但如果是數值在Excel VBA的話, 其實WorksheetFunction.Small 還是很好用的.


[附件已被管理員刪除]
已記錄

oobird
凸槌的木工
論壇維護群
*
離線 離線

文章: 4679


Re: 陣列排序 / Sorting Array / Sort Array
« 回覆文章 #1 於: 2005-06-01, 13:08:11 »

不知有這種程度的人有多少,小弟看了半天真如看天書,恐怕又辜負leonchou兄一番美意了!是否能請leonchou兄把工作表也傳上來,對照一下才知怎麼用呢。
已記錄

結廬待慧君
yem
高中生
*
離線 離線

文章: 110



Re: 陣列排序 / Sorting Array / Sort Array
« 回覆文章 #2 於: 2005-06-02, 08:25:44 »

不知道LeonChou兄去哪裡找到這個mdlArray.zip

真的很不錯!!多謝啦!! Smiley
已記錄

What doesn't kill you will only make you stronger
leonchou
論壇維護群
*
離線 離線

文章: 1204


Re: 陣列排序 / Sorting Array / Sort Array
« 回覆文章 #3 於: 2005-06-03, 01:20:56 »

是否能請leonchou兄把工作表也傳上來,對照一下才知怎麼用呢。

不是和一般(自訂)函數的用法一樣嗎??

[附件已被管理員刪除]
已記錄

頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  

本頁花了 0.26 秒, 以及 20 次的資料庫查詢.