abc = Sheets("02").Range("calc02").Value // value is: Rabat 5%
xR = Mid(abc, 7, 1) // Result is: 5
这没关系,但如果内容是:拉巴特50%,或拉巴特100%
我想只提取这个数字,无论是一位,两位还是三位数。
答案 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))