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

これは問題ありませんが、内容が次の場合はどうなりますか: Rabat 50% または Rabat 100%
1 桁、2 桁、3 桁のいずれであっても、この数値のみを抽出したいと考えています。

4

3 に答える 3

2

正規表現を使用します。

var number = Regex.Match(abc, "[0-9]+");
于 2012-08-21T06:06:01.450 に答える
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 に答える
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 に答える