Foxtable(狐表)用户栏目专家坐堂 → [求助]代码统计一行某几个单元格求和的方法?


  共有2336人关注过本帖树形打印复制链接

主题:[求助]代码统计一行某几个单元格求和的方法?

帅哥哟,离线,有人找我吗?
文道古月
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
[求助]代码统计一行某几个单元格求和的方法?  发帖心情 Post By:2015/11/16 21:55:00 [只看该作者]

老师好,我想统计一行中某几个单元格(包括空白),不用表达式用代码,怎么写?
记得视频教程中有过类似的演示,是用代码统计各科成绩的,反反复复找了几遍,也没再看到。
请指点一二,O(∩_∩)O谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 22:45:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/16 22:45:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
文道古月
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/17 10:44:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
文道古月
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
  发帖心情 Post By:2015/11/17 10:46:00 [只看该作者]

噢噢。谢谢!

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
文道古月
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
  发帖心情 Post By:2015/11/17 12:57:00 [只看该作者]

sum += 

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

 回到顶部
帅哥哟,离线,有人找我吗?
文道古月
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:303 积分:2363 威望:0 精华:0 注册:2015/10/14 16:55:00
  发帖心情 Post By: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吗,触发报错是怎么回事呢?

 回到顶部
总数 12 1 2 下一页