http://topic.csdn.net/u/20120718/10/cf855a05-8dfd-4084-a67b-eca3a0405414.htmlFunction CalcStr(StrNum As String) As Double
Set MSSC = CreateObject("MSScriptControl.ScriptControl")
MSSC.Language = "VBScript"
CalcStr = MSSC.Eval(StrNum)
Set MSSC = Nothing
End Function 现在的问题是,如何判断四则运算中,是否有无效运算符?
2+6 823p6+66 含有无效运算符p 其结果是 #VALUE!sqrt(6+cos(23*pi()/180)) 2.630685244
25/9+sin(45*pi()/180) 3.484884559oo+55 含有无效运算符oo 其结果是 #NAME?
Set MSSC = CreateObject("MSScriptControl.ScriptControl")
MSSC.Language = "VBScript"
CalcStr = MSSC.Eval(StrNum)
Set MSSC = Nothing
End Function 现在的问题是,如何判断四则运算中,是否有无效运算符?
2+6 823p6+66 含有无效运算符p 其结果是 #VALUE!sqrt(6+cos(23*pi()/180)) 2.630685244
25/9+sin(45*pi()/180) 3.484884559oo+55 含有无效运算符oo 其结果是 #NAME?
解决方案 »
- 有什么办法让WINDOWS服务延迟启动?
- 在vsflexGrid中如何让用户点击的那个单元格可以编辑。。????
- 科大讯飞的InterPhonic CE
- MSFlexGrid被选中行的背景色的设置
- spread控件当输入汉字时会显示乱码?如何解决呢?
- 寻求资源文件的解决方案?****在线等候*****
- 在Linux操作系统平台上将防火墙的包过滤、
- VB与SQL的问题???
- DATAGRID删除记录,为何其它DATAGRID中能看到,但一点击显示错误?
- 难到没人会吗?再次请教!!!如何将*.doc,*.htm格式的文件的内容快速导入到mdb数据库中
- VB 如何控制其它程序中的按钮
- 恭喜影子童鞋重返版主团队~~~上任网络编程版主·~~
本示例使用 IsNumeric 函数判断变量的值是否可为数值。Dim MyVar, MyCheck
MyVar = "53" ' 指定值。
MyCheck = IsNumeric(MyVar) ' 返回 True。MyVar = "459.95" ' 指定值。
MyCheck = IsNumeric(MyVar) ' 返回 True。MyVar = "45 Help" ' 指定值。
MyCheck = IsNumeric(MyVar) ' 返回 False。
谢谢回复。先用正则表达式分离出数字,再用IsNumeric判断其是否为数字型。'以下是一个通用自定义函数。
Function exReplace(str As String, repstr As String, pat As String)
'正则表达式替换函数
'参数说明:str表示原字符串,repstr表示将要替换的字符串,pat表示样式Dim reg As Object
Set reg = CreateObject("vbscript.regexp") '创建一个正则表达式变量
With reg
.Global = True '搜索字符串中的全部字符,如果为false表示一找到匹配的字符就停止搜索。
'.MultiLine = True
.Pattern = pat '设置样式
exReplace = .Replace(str, repstr) '执行替换
End With
Set reg = Nothing
End Function
Public Function IsGoodFormula(ByVal sString As String) As Boolean
If Not sString Like "*[!0-9+-\*/]*" Then IsGoodFormula = True
End Function
MyCheck = "aBBBa" Like "a*a" ' 返回 True。
MyCheck = "F" Like "[A-Z]" ' 返回 True。
MyCheck = "F" Like "[!A-Z]" ' 返回 False。
MyCheck = "a2a" Like "a#a" ' 返回 True。
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' 返回 True。
MyCheck = "BAT123khg" Like "B?T*" ' 返回 True。
MyCheck = "CAT123khg" Like "B?T*" ' 返回 Falsehttp://club.excelhome.net/forum.php?mod=viewthread&tid=510987
http://club.excelhome.net/forum.php?mod=viewthread&tid=867053
VB文章:==>深入使用LIKE操作符
深入使用LIKE操作符
在VB中,相对于本身的潜在功能,LIKE可能是最被忽视的一个操作符了。它的最基本用途是检查一个字符串与给定样式的匹配程度。比如,很容易检查一个产品ID号是否由一个字母以及3个数字组成:
If ProductID Like "[A-Za-z][0-9][0-9][0-9]" Then Print "OK"
' this is equivalment, because "#" stands for a digit
If ProductID Like "[A-Za-z]###" Then Print "OK"
除了上述基本功能,LIKE在其他情况下也非常有用。以下就一一列举:
比如,可以检查一个字符串只包含大写字母:
If Not ProductID Like "*[!A-Z]*" Then Print "OK"
同理,也可以检查一个字符串只包含数字:
If Not ProductID Like "*[!0-9]*" Then Print "OK"
下面的语句检查一个字符串只包含字母或者数字符:
If Not ProductID Like "*[!A-Za-z0-9]*" Then Print "OK"
下面的语句检查一个字符串是否为合法的VB变量名,就是说,开头是一个字母,接着跟随字母或数字符:
' VarName是被检查的字符串
If VarName Like "[A-Za-z]*" And Not Mid$(VarName, 2) Like "*[!A-Z_a-z0-9]*" _ Then Print "OK"
下面的语句检查字符串是否至少包含2个空格 (连续的或者间隔的):
If TestString Like "* * *" Then Print "OK"
而下面的语句进一步确认2个空格是不连续的:
If TestString Like "* ?* *" Then Print "OK"
检查一个有符号整数是很复杂的事情,因为必须计算出前导符号并且计算好"#"符号的正确数目:
' NumValue是被检测的字符串
If NumValue Like "#" Or (Len(NumValue) > 1 And NumValue Like "[-+0-9]" & _ String$(Len(NumValue) - 1, "#")) Then Print "OK"
最后一个例子是:检测NumValue是否包含一个有符号的十进制数值。这种情况下,我们必须要确定存在一个前导符号以及只有一个十进制分隔符,并且所有其他字符都是数字符:
' NumValue是被检测的字符串
If NumValue Like "#" Or (Len(NumValue) > 1 And Left$(NumValue, _ 1) Like "[-+.0-9]" And Not Mid$(NumValue, 2) Like "*[!.0-9]*" And Not _ NumValue Like "*.*.*") Then Print "OK"