返回列表 上一主題 發帖

連續 & 不連續 之陣列處理方式ex:1~3,5,7,9~11

連續 & 不連續 之陣列處理方式ex:1~3,5,7,9~11

各位大大如題,陣列內的數字已經會依照數字大小進行排序,由小至大
但要如何達到以下效果呢~?(陣列長度不一定)
假設陣列為
1,2,3,5,7,9,10,11 =>1~3,5,7,9~11
1,11=>1,11
5,6,8,9=>5~6,8~9

也就是上一個數字與這個數字是連續的就要用"~"表示,且省略中間數字
但若不是連續的,則以","顯示,且不得省略數字
PKKO

回復 2# luhpro

感謝大大的回覆,但無法成功顯示,最後結果只會出現末幾碼而已
PKKO

TOP

回復 4# GBKEE


    感謝版大,完全正確!,且完全明白了!!
PKKO

TOP

Dear 只會出現尾數(8~9)
  1. Sub nn()

  2.   Dim iI%

  3.   Dim lL&

  4.   Dim sStr$

  5.   Dim vA, vB

  6.   

  7.   'vA = Array(1, 2, 3, 5, 7, 9, 10, 11)

  8.   'vA = Array(1, 11)

  9.   vA = Array(1, 6, 8, 9)

  10.   ReDim vB(0)

  11.   lL = vA(0)

  12.   sStr = lL

  13.   For iI = 1 To UBound(vA)

  14.     If vA(iI) <> lL + 1 Then

  15.       If vA(iI - 1) <> sStr Then sStr = sStr & "~" & vA(iI - 1)

  16.         vB(UBound(vB)) = sStr

  17.         ReDim Preserve vB(UBound(vB) + 1)

  18.         sStr = vA(iI)

  19.     End If

  20.     lL = vA(iI)

  21.   Next

  22.   If vA(UBound(vA)) <> sStr Then sStr = sStr & "~" & vA(iI - 1)

  23.   vB(UBound(vB)) = sStr
  24.     MsgBox vB(UBound(vB))
  25. End Sub
複製代碼
回復 6# bobomi
PKKO

TOP

感謝兩位超版的指教,以及bobomi 的提醒,原來是小弟疏忽了,感恩!!
PKKO

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題