|
以下两段均可适用于含有小于1的数
Sub test1()
Dim ar1(), ar2() As String
ar1 = [a4:a8].Value
ReDim ar2(1 To UBound(ar1), 1 To 20)
For i1 = 1 To UBound(ar1)
c% = 0: t = 0
For i2% = 1 To Len(ar1(i1, 1))
s$ = Mid(ar1(i1, 1), i2, 1)
If s Like "[.0-9]" Then
If t = 0 Then t = 1: c = c + 1
Else
If t Then t = 0
c = c + 1
End If
ar2(i1, c) = ar2(i1, c) & s
Next
Next
[c4].Resize(i1 - 1, UBound(ar2, 2)) = ar2
End Sub
Sub test2()
Dim ar1(), ar2() As String
ar1 = [a4:a8].Value
ReDim ar2(1 To UBound(ar1), 1 To 20)
For i1 = 1 To UBound(ar1)
c% = 0
Do While Len(ar1(i1, 1))
c = c + 1
If Left(ar1(i1, 1), 1) Like "[0-9]" Then
ar2(i1, c) = Val(ar1(i1, 1))
t = 1
If Left(ar2(i1, c), 1) = "." Then t = 2
ar1(i1, 1) = Mid(ar1(i1, 1), Len(ar2(i1, c)) + t)
Else
ar2(i1, c) = Left(ar1(i1, 1), 1)
ar1(i1, 1) = Mid(ar1(i1, 1), 2)
End If
Loop
Next
[c4].Resize(i1 - 1, UBound(ar2, 2)) = ar2
End Sub |
评分
-
查看全部评分
|