以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教:Excel报表中的总计代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2610) |
-- 作者:yangming -- 发布时间:2009/4/27 20:25:00 -- 请教:Excel报表中的总计代码 这是我的代码,意思是在表格的最后一行,逐列求和,请教,红色行错在何处? Sheet(r1+1, c).Style= Style |
-- 作者:菜鸟foxtable -- 发布时间:2009/4/27 21:29:00 -- 以下是引用yangming在2009-4-27 20:25:00的发言:
这是我的代码,意思是在表格的最后一行,逐列求和,请教,红色行错在何处? Sheet(r1+1, c).Style= Style dt.Compute("Sum("& c &")")这个不对吧....c只是整数变量,而不是某列列名.... Sheet(r1+1, c).Style= Style
[此贴子已经被作者于2009-4-27 21:43:14编辑过]
|
-- 作者:yangming -- 发布时间:2009/4/27 21:44:00 -- 你的方法我试过的,还是出错,不过还是要谢谢你啊 [此贴子已经被作者于2009-4-27 21:47:52编辑过]
|
-- 作者:菜鸟foxtable -- 发布时间:2009/4/27 21:47:00 -- 这个不行吗?EXCEL报表我没怎么研究.....但是SUM这个括号里的内容应该是出错的原因.. For c As Integer = 5 To dt.Cols.Count -2 \' Sheet(r1+1, c).Value = dt.Compute("Sum(dt.Cols(c).Name)") Sheet(r1+1, c).Style= Style Compute 根据条件统计表中数据。 语法: Compute(Expression, Filter) Expression: 要计算的表达式
Dim Total As LongTotal = DataTables("订单").Compute("Sum(数量)", "产品 = \'PD01\'") Output.Show(Total) ------------------------------------------------------------------------------- 通过Name属性和Index属性,我们可以获得指定名称列的位置,也可以获得指定位置列的名称: 例如: Output.Show( "金额列的位置是:" & Tables("订单").Cols("金额").Index)Output.Show("第三列的名称是:" & Tables("订单").Cols(2).Name) [此贴子已经被作者于2009-4-27 21:55:55编辑过]
|
-- 作者:yangming -- 发布时间:2009/4/27 22:33:00 -- 如果只是计算一个数量列,而又没有条件,就用:Total = DataTables("订单").Compute("Sum(数量)"),我是要逐列求和,就不明白如何做了 |
-- 作者:ybtxdz -- 发布时间:2009/4/28 0:11:00 -- 试试 Sheet(r1+1, c).Value = dt.Compute("Sum(" & Tables("表名").Cols(c).Name & ")") |
-- 作者:yangming -- 发布时间:2009/4/28 0:39:00 -- 谢谢ybtxdz,我不明白,这里为何要加表名呢? |
-- 作者:yangming -- 发布时间:2009/4/28 1:05:00 -- 谢谢ybtxdz,我只是不明白,这里为何要加入表名呢? |
-- 作者:ybtxdz -- 发布时间:2009/4/28 1:29:00 -- 首先Sum聚合函数的计算需要给出列的名称 |
-- 作者:yangming -- 发布时间:2009/4/28 15:15:00 -- 明白了,呵呵,看来还是没搞清楚DataTable和Table 的区别,再次感谢! |