- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
10#
發表於 2016-4-6 05:31
| 只看該作者
回復 9# ziv976688 - Sub Ex()
- Dim dic As Object, rng As Range, fld As Range, txt As String
-
- Set rng = Range("B2:H" & [H65536].End(xlUp).Row)
- Set dic = CreateObject("scripting.dictionary")
-
- [K:O].Clear
- For Each fld In rng
- txt = fld.Value
- If dic.exists(txt) = False Then
- dic(txt) = 1
- Else
- dic(txt) = dic(txt) + 1
- End If
- Next
-
- [K1] = " 由小而大依序排列"
- [K2].Resize(UBound(dic.KEYS) + 1) = Application.Transpose(dic.KEYS) ' 索引值就是 Keys
- [L2].Resize(UBound(dic.KEYS) + 1) = Application.Transpose(dic.Items) ' 資料內容就是 Items
- With [K2].Resize(UBound(dic.KEYS) + 1, 2) ' Range("K2:L" & [L2].End(xlDown).Row)
- .Cells.Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo ' xlDescending
- End With
-
- Range("K2:L" & [L65536].End(xlUp).Row).Copy [N2]
-
- [N1] = "依出現機率數據排列"
- With [N2].Resize(UBound(dic.KEYS) + 1, 2) ' Range("N2:O" & [O2].End(xlDown).Row)
- .Cells.Sort Key1:=.Cells(2), Order1:=xlDescending, Header:=xlNo ' xlAscending
- End With
- End Sub
複製代碼 |
|