以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [分享]单元格内自动简单四则运算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116696)

--  作者:WELOVEFOX
--  发布时间:2018/3/29 15:12:00
--  [分享]单元格内自动简单四则运算
在研究别的软件时,发现在相应表格里面可以直接输入计算内容,自动计算数值,不用调用自带计算器等,
而搜索论坛,发现基本都是调用计算器,思路定向于编制独立函数,结果水平太低,灵光一闪:
用自带val, Eval数据直接运算:
在datacolchanged加入

If e.DataCol.Name = "字符列" Then \'自行改回需求列名
    If e.DataRow.IsNull("字符列") Then
        e.DataRow("字符列") = Nothing
    Else
        Dim s As String = e.DataRow("字符列")
        e.DataRow("字符列") = val(Eval(e.DataRow("字符列")))
    End If
End If

\'注意事项:没有作字符个数截取,所以计算结果如果超过当前字符列长度,系统会自动提示截取
\'如果需要调用本列数值,需要自行尝试字符数值转换
\'测试数据如: (1+8)/3.3
\'如果输入包含全格运算符,好像也正常运算,如果带字母的,结果会自动为0,为0这个是学其它软件功能考虑的。
\'可能会存在其它未考虑情况,如果需要提示带字母的要对结果提示出错,可以自行尝试使用IsNumeric等判断函数

--  作者:有点甜
--  发布时间:2018/3/29 15:28:00
--  

Eval2 函数不会报错

 

http://www.foxtable.com/webhelp/scr/1277.htm