Board logo

標題: 請求支援-字串判斷,重新排列 [打印本頁]

作者: simontasi    時間: 2016-6-28 00:14     標題: 請求支援-字串判斷,重新排列

請教個位大大,如果a欄中有以下這些資料
abc。hello123
11 元
22 元
29 天 21 小時
aabc,defg
33 元
44 元
21 小時20分
abcfffg
55 元
1
66元
bbabcff
77 元
3
77 元
10天

想要利用判斷式,變成圖片這樣要怎麼做比較好
因為有幾千筆手動太難了
確定的是,abc是固定會出現
還有要抓取元之前的數字到abc之串之後,第一個元為b,第二個元為c
[attach]24571[/attach]

有想過用錄巨集的方式,但都會出現錯誤,或是誤刪
作者: simontasi    時間: 2016-6-28 00:20

回復 1# simontasi
忘了說明,時間跟單純數字的儲存格需要刪除
作者: chengchi1223    時間: 2016-6-28 10:35

B1跟C1為什麼不是11跟22呢?
作者: hcm19522    時間: 2016-6-28 11:59

http://blog.xuite.net/hcm19522/twblog/427715445
作者: Kubi    時間: 2016-6-28 15:37

回復 1# simontasi
經整理後資料匯出B:D欄。
  1. Sub test()
  2.     Dim arr, brr()
  3.     With ActiveSheet
  4.         .Cells.Replace ChrB(160), ""
  5.         er = .[A65536].End(3).Row
  6.         arr = .Range("A1:A" & er)
  7.         .[B1:D65536].ClearContents
  8.     End With
  9.     n = -1
  10.     For i = 1 To UBound(arr)
  11.         If InStr(arr(i, 1), "abc") <> 0 Then
  12.             n = n + 1
  13.             ReDim Preserve brr(2, n)
  14.             brr(0, n) = arr(i, 1)
  15.             c = 1
  16.         Else
  17.             If Right(arr(i, 1), 1) = "元" Then
  18.                 brr(c, n) = Val(arr(i, 1))
  19.                 c = c + 1
  20.             End If
  21.         End If
  22.     Next i
  23.     ActiveSheet.[B1].Resize(n + 1, 3) = Application.Transpose(brr)
  24. End Sub
複製代碼

作者: simontasi    時間: 2016-6-28 21:09

回復 3# chengchi1223
抱歉打錯了,是11 22沒錯




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)