abc = Sheets("02").Range("calc02").Value // value is: Rabat 5%
xR = Mid(abc, 7, 1) // Result is: 5
这没关系,但是如果内容是:Rabat 50%,或者 Rabat 100%
我只想提取这个数字,无论是一位数、两位数还是三位数。
使用正则表达式:
var number = Regex.Match(abc, "[0-9]+");
关于什么:
xR = Mid(abc, 7, Len(abc)-7)
假设字符串始终相同,这会考虑字符串的长度以动态返回值。这仅适用于该格式,但这听起来像你想要的:)
如果您想要百分比并且前面的单词是可变长度的,这可能会起作用:
percent = Right(abc, InStr(StrReverse(abc)," ")-1)
xR = Mid(percent, 1, Len(percent)-1)
xR = Mid$(abc, 7) ' Returns 5% or 50% etc
xR = Left$(xr, Len(xR)) - 1) ' strips the %
或者,如果您希望 xR 作为数字返回
xR = Val(Mid$(abc, 7))