以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]代码统计一行某几个单元格求和的方法?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77348)

--  作者:文道古月
--  发布时间:2015/11/16 21:55:00
--  [求助]代码统计一行某几个单元格求和的方法?
老师好,我想统计一行中某几个单元格(包括空白),不用表达式用代码,怎么写?
记得视频教程中有过类似的演示,是用代码统计各科成绩的,反反复复找了几遍,也没再看到。
请指点一二,O(∩_∩)O谢谢!

--  作者:大红袍
--  发布时间:2015/11/16 22:45:00
--  

这个? http://www.foxtable.com/help/topics/0681.htm

 


--  作者:大红袍
--  发布时间:2015/11/16 22:45:00
--  

这个? http://www.foxtable.com/help/topics/0602.htm


--  作者:大红袍
--  发布时间:2015/11/16 22:46:00
--  

或者在datacolchanged事件写代码

 

If e.DataCol.Name = "A" OrElse e.DataCol.Name = "B" Then
    e.DataRow("C") = e.DataRow("A") + e.DataRow("B")
End If


--  作者:文道古月
--  发布时间:2015/11/17 10:43:00
--  
Select Case e.DataCol.name 
   Case "物料组_新料","物料组_B2"
        e.DataRow("物料组合计") = e.DataRow("物料组_新料") + e.DataRow("物料组_B2")
End Select

老师好,我是上面那样写的。
现有一个疑问,
按上面的代码计算了之后,就算单元格为空白也是可以正常计算。
是不是只有表达式才不识别单元格为空白的计算呢?
如果我要加很多的话,能简化一点吗?

[此贴子已经被作者于2015/11/17 10:43:48编辑过]

--  作者:大红袍
--  发布时间:2015/11/17 10:44:00
--  
以下是引用文道古月在2015/11/17 10:43:00的发言:
 
现有一个疑问,
按上面的代码计算了之后,就算单元格为空白也是可以正常计算。
是不是只有表达式才不识别单元格为空白的计算呢?

 

是的。表达式要这样  http://www.foxtable.com/help/topics/0602.htm


--  作者:文道古月
--  发布时间:2015/11/17 10:46:00
--  
噢噢。谢谢!

那请问老师,我要是加很多列的话,需要一个个加,
有什么简化的法子吗?

--  作者:大红袍
--  发布时间:2015/11/17 11:16:00
--  
以下是引用文道古月在2015/11/17 10:46:00的发言:
噢噢。谢谢!

那请问老师,我要是加很多列的话,需要一个个加,
有什么简化的法子吗?

 

比如可以这样

 

If e.DataCol.name Like "物料组_*" Then
    Dim sum As Double = 0
    For Each dc As DataCol In e.DataTable.DataCols
        If dc.name Like "物料组_*" Then
            sum += e.DataRow(dc.name)
        End If
    Next
    e.DataRow("物料组合计") = sum
End If


--  作者:文道古月
--  发布时间:2015/11/17 12:57:00
--  
sum += 

这个  +=    是什么意思?怎么没见过

--  作者:文道古月
--  发布时间:2015/11/17 13:15:00
--  
For Each dc As DataCol In e.DataTable.DataCols
    Dim sum As Integer = 0
    sum += e.DataRow(dc.name)
    Select Case dc.name
        Case dc.name Like "维修组_*"
            e.DataRow("维修组合计") = sum
        Case dc.name Like ("物料组_")
            e.DataRow("物料组合计") = sum
    End Select
Next

老师好,上面的代码,能用select csce吗,触发报错是怎么回事呢?