如何从字符串中提取数字?

时间:2012-08-21 05:55:03

标签: excel vba

abc = Sheets("02").Range("calc02").Value  // value is: Rabat 5%
xR = Mid(abc, 7, 1) // Result is: 5

这没关系,但如果内容是:拉巴特50%,或拉巴特100%
我想只提取这个数字,无论是一位,两位还是三位数。

3 个答案:

答案 0 :(得分:2)

使用正则表达式:

var number = Regex.Match(abc, "[0-9]+");

答案 1 :(得分:1)

怎么样:

xR = Mid(abc, 7, Len(abc)-7)

假设字符串始终相同,则会考虑字符串的长度以动态返回值。这只适用于那种格式,但听起来像你想要的那样:)

如果你想要百分比和前面的单词是可变长度,这可能有效:

percent = Right(abc, InStr(StrReverse(abc)," ")-1)
xR = Mid(percent, 1, Len(percent)-1)

答案 2 :(得分:1)

xR = Mid$(abc, 7)  ' Returns 5% or 50% etc
xR = Left$(xr, Len(xR)) - 1)  ' strips the %

或者,如果您希望xR作为

返回
xR = Val(Mid$(abc, 7))