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

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

4

3 回答 3

2

使用正则表达式:

var number = Regex.Match(abc, "[0-9]+");
于 2012-08-21T06:06:01.450 回答
1

关于什么:

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

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

如果您想要百分比并且前面的单词是可变长度的,这可能会起作用:

percent = Right(abc, InStr(StrReverse(abc)," ")-1)
xR = Mid(percent, 1, Len(percent)-1)
于 2012-08-21T06:06:06.467 回答
1
xR = Mid$(abc, 7)  ' Returns 5% or 50% etc
xR = Left$(xr, Len(xR)) - 1)  ' strips the %

或者,如果您希望 xR 作为数字返回

xR = Val(Mid$(abc, 7))
于 2012-08-21T06:08:45.793 回答