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


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

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

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


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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  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: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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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


 回到顶部