返回列表 上一主題 發帖

[發問] VBA數字整合在一起

[發問] VBA數字整合在一起

本帖最後由 adrian_9832 於 2018-3-1 21:34 編輯

各位大大好 我想請問一下 用VBA 怎麼可以對順序的數字進行整理

比如 246517 246518 246519   變成 24651(7-9) 這樣     請各位大大拍教

求大大幫忙.......

TOP

Sub GO_______________()

MsgBox Join(數字歸類(Array(246517, 246518, 246519), 1), vbCrLf)
MsgBox Join(數字歸類(Array(246299, 246217, 246517, 246518, 246519), 2), vbCrLf)


End Sub



Public Function 數字歸類(NumAR, ByVal 位數 As Long)
' 位數 need >= 0

Set c_max = CreateObject("Scripting.Dictionary")
Set c_min = CreateObject("Scripting.Dictionary")

For Each n In NumAR
     root = n \ (10 ^ 位數)
     n = n Mod (10 ^ 位數)
     If Not c_max.exists(root) Then
            c_max(root) = n
            c_min(root) = n
     End If
     If n > c_max(root) Then c_max(root) = n
     If n < c_min(root) Then c_min(root) = n
Next


For Each root In c_max
     c_max(root) = root & "(" & c_min(root) & "-" & c_max(root) & ")"
Next

數字歸類 = c_max.items

End Function

TOP

大大 你真的好厲害...... 謝謝你的幫助

TOP

隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集5000篇 EXCEL函數

TOP

樓上的大大 謝謝你的BLOG   有好多不同的函數例子

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題