如何从string中提取数字?

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

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

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

或者,如果你想要xR返回一个数字

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

使用正则expression式:

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

关于什么:

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

假设string总是相同的,这将考虑string的长度来dynamic地返回值。 这将只适用于这种格式,但这听起来像你想要的:)

如果你想要的百分比和前面的字是可变长度,这可能工作:

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