以文本方式查看主题 - 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
|