返回列表 上一主題 發帖

[發問] 數組括號內的數字 分折

[發問] 數組括號內的數字 分折

大家好 請問一個數組 比如以下 :

A1
2301(1,3,5-7,9-0)   


怎麼可以用方程式或VBA 變成以下這樣結果 因為括號內的號碼不一致 有時是 , 有時是-                 請各位指教
23011
23013
23015
23017
23019
23010

本帖最後由 n7822123 於 2018-10-4 00:53 編輯

回復 1# adrian_9832

要用一些解字串的技巧
VBA如下,把A1解析後放到B欄
公式找別人幫忙吧.......我工作表函數會的不多
只知道instr 可以用 find 取代
但是split 不知道工作表函數有沒有類似的
  1. Sub TEST()
  2. Ar = Split(Replace([A1], "-", ","), ",")
  3. Ar(0) = Right(Ar(0), Len(Ar(0)) - InStr(Ar(0), "("))
  4. An = UBound(Ar)
  5. Ar(An) = Left(Ar(An), Len(Ar(An)) - 1)
  6. [B1].Resize(An + 1) = Application.Transpose(Ar)
  7. End Sub
複製代碼
AAA.rar (10.16 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2018-10-4 01:07 編輯

回復 2# n7822123


更正! 忘記加前面的數字了
  1. Sub TEST()
  2. Ar = Split(Replace([A1], "-", ","), ",")
  3. A0 = Left(Ar(0), InStr(Ar(0), "(") - 1)
  4. Ar(0) = Right(Ar(0), Len(Ar(0)) - InStr(Ar(0), "("))
  5. An = UBound(Ar)
  6. Ar(An) = Left(Ar(An), Len(Ar(An)) - 1)
  7. For i = 0 To An
  8.   Ar(i) = A0 & Ar(i)
  9. Next i
  10. [B1].Resize(An + 1) = Application.Transpose(Ar)
  11. End Sub
複製代碼
BBB.rar (10.53 KB)
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

9-0 ???
有沒有9-2之類的,
舉的例子只有一個, 程式寫了也是白寫,
上傳較完整的數據吧!!!

TOP

  1. Sub zz()
  2. Dim s$
  3. s = "2301(1,3,5-7,9-0)"
  4. With CreateObject("vbscript.regexp")
  5.     .Pattern = "\d+"
  6.     .Global = True
  7.     k = Split(s, "(")
  8.     If .test(k(1)) Then
  9.         Set t = .Execute(k(1))
  10.         For Each x In t
  11.             Debug.Print k(0) & x
  12.         Next
  13.     End If
  14. End With
  15. End Sub
複製代碼

TOP

回復 1# adrian_9832


沒法還原吧
如何知道 23016 不是其中一組解


23011
23013
23015
23016
23017
23019
23010

TOP

5-7
應指5.6.7吧!

TOP

我打少6那個號碼  抱歉   多謝各位大大們的幫助

TOP

23011
23013
23015
23016
23017
23019
23010

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題