如何在字符串中提取十进制数?

时间:2016-06-14 14:27:21

标签: string excel-vba vba excel

我想从string中提取(或分离)十进制数字。像:

  

宽度(6.15)

这里我只想保留十进制数字。

Sub first_try()

Dim a, b
a = "width(5.55)"
For i = 1 To Len(a)
    If IsNumeric(Mid(a, i, 1)) Then
        b = b & Mid(a, i, 1)
    End If
Next i

'Debug.Print b

End Sub

但在这种情况下,我只能保留数字(如我的代码为555),但不能保留十进制数字。并且字符串并不总是像宽度(5.55),没有规律可循。所以,如果你有一些想法,请给我一些建议。谢谢!

2 个答案:

答案 0 :(得分:1)

这是一种可能的方式:

Sub first_try()

Dim a, b
Dim i As Long
a = "width(5.55)"
For i = 1 To Len(a)
    If IsNumeric(Mid(a, i, 1)) Then
        b = Val(Mid(a, i))
        Exit For
    End If
Next i

Debug.Print b

End Sub

根据您提供的信息。如果你需要允许负数,这应该是一个简单的改变。

答案 1 :(得分:1)

以下是获取数字和小数点的方法:

=~