以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 公式也会犯神经啊 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68273) |
-- 作者:moxuejiahui -- 发布时间:2015/5/13 21:07:00 -- 公式也会犯神经啊 公式出错了,很奇葩 dim jy as Double dim sr as Double dim zc as Double dim i as Integer Dim hs As Integer =Tables("统计").Rows.Count - 1 for i = 0 to hs dim dr as datarow = DataTables("统计").DataRows(i) sr = sr + dr("收入") zc = zc + dr("支出") jy = jy + sr - zc dr("结余") = jy next 这个公式应该没有问题吧,好几百项都没问题,可是就只有在我选择统计其中的一种物料时的最后一行出错,并且上一行的结余是3.23(正确) 下一行收入为0,发出3.23,可是算出的结余却是8.886966888,选其他物料不会出错,并且我要是把这个统计放在两个时间段分别统计的话也都不会出错。确实不知道是怎么回事了,呵呵
|
-- 作者:大红袍 -- 发布时间:2015/5/13 21:14:00 -- Dim jy As Double Dim sr As Double Dim zc As Double For Each dr As Row In Tables("统计").Rows sr = sr + dr("收入") zc = zc + dr("支出") jy = jy + sr - zc dr("结余") = jy Next |
-- 作者:moxuejiahui -- 发布时间:2015/5/13 21:18:00 -- 这样可以,可是我那样为什么会有一个不正确的呢,统计表的数据是根据窗口选项变化的,会排序后逐行进行窗口添加控件,我写的代码有错误码? |
-- 作者:大红袍 -- 发布时间:2015/5/13 21:19:00 -- 你的代码,这句
dim dr as datarow = DataTables("统计").DataRows(i)
改成这句就没问题
dim dr as row = Tables("统计").Rows(i) |
-- 作者:moxuejiahui -- 发布时间:2015/5/13 21:27:00 -- 改完后那一个个例还是出错,呵呵,一开始用的上面的代码,但是发现排序不行,所以改为你那代码,结果发现了一个个例。呵呵,按说公式本身应该没问题的啊,怎么会有那么一个个例呢? |
-- 作者:大红袍 -- 发布时间:2015/5/13 21:32:00 -- 呃,上传例子吧 |
-- 作者:程兴刚 -- 发布时间:2015/5/14 3:00:00 -- 因为有N个最新修改过的行未保存,用代码自动先保存当前行! |