|
本帖最后由 统计会计 于 2015-9-19 11:23 编辑
请问在B列的单元格里怎样用代码提取出连续的数值
如:1234 1020304 12345
4个连续以上的数值
- Sub 提取()
- Dim crr()
- arr = Range("b2:c" & [b65536].End(3).Row)
- For i = 1 To UBound(arr)
- x = arr(i, 1) '源数
- ReDim crr(0 To 9) '定义0-9的数组
- For k = 1 To Len(x) '源数各位进数组对应位置,数值大小为源数各位大小
- s = Val(Mid(x, k, 1))
- crr(s) = s
- Next
- xstr = "" '定义空字符串,用于记录连续数
- For k = 1 To 9 '数组连续取数
- y = crr(k)
- If y > 0 Then '如果位置上有数,进字符串
- xstr = xstr & y
- Else '如果位置上没数
- If Len(xstr) >= 4 Then arr(i, 2) = arr(i, 2) & "," & xstr '判断字符串是否大于4位,是则取用
- xstr = "" '清空字符串以待下一个连续数
- End If
- Next
- If Len(xstr) >= 4 Then arr(i, 2) = arr(i, 2) & "," & xstr '如果到最后一位,字符串未清空,判断字符串是否大于4位,是则取用
- If Len(arr(i, 2)) > 0 Then arr(i, 2) = Mid(arr(i, 2), 2)
- Next
- Range("b2:c" & [b65536].End(3).Row) = arr
- End Sub
复制代码
|
|