我相信一个简单的正则表达式测试将提供你想要的东西:
Dim objRegEx, strValue
'Create Regular Expression object to parse the file
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Global = True
objRegEx.MultiLine = True
objRegEx.Pattern = "\d+\,\d+\.\d{2}"
strValue = "e.g. 32,000.00."
MsgBox objRegEx.test(strValue) '<- True
strValue = "e.g. 3200000."
MsgBox objRegEx.test(strValue) '<- False
以上将导致布尔响应(真/假)。 它适应你的习惯...
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.IgnoreCase = True
objRegEx.Global = True
objRegEx.MultiLine = True
objRegEx.Pattern = "\d+\,\d+\.\d{2}"
Root_RefundAmount = Root_TaxDataSummary.SlvObject("RefundAmount").GetROProperty("text")
If Not objRegEx.test(Root_RefundAmount) Then
'Pattern NOT Found
Else
'Pattern IS Found
End If
为了解释模式:
"\d+\,\d+\.\d{2}"
\ d =〜9的任何数0 ...
“一个号码跟一个逗号后面是数字,包含一个小数点和2个小数位“{假设您的意思是2个数字} ...根据您的输入,上述内容更容易查看,但它也会匹配12345,12345.99等数字,这些数字可能会也可能不会是可取的。
如果你需要精确的,那么你可能要考虑下面的正则表达式:
"\d{1,3}(?:\,\d{3})*\.\d{2}"
这将从0.00匹配号码999,999,999.99等典型的数字格式...
如果你想具体来看对数在1000以上(用逗号分隔),然后换星“*”为加“+”是指一个或多个需要...
"\d{1,3}(?:\,\d{3})+\.\d{2}"
或者一个甚至多个S pecific正则表达式:
(?:[1-9]|[1-9][0-9]|[1-9][0-9]{2})(?:\,[0-9]{3})+\.[0-9]{2}
'OR
(?:[1-9]|[1-9]\d|[1-9]\d{2})(?:\,\d{3})+\.\d{2}
有关正则表达式多一点信息和 '\ d' 字符类,请看看下面的链接:
http://www.regular-expressions.info/shorthand.html
https://msdn.microsoft.com/en-us/library/20bw873z(v=vs.110).aspx#Anchor_9
使用一个正则表达式。 – Lankymart