Excel C#动态获取一行的总和

时间:2016-12-12 08:51:15

标签: c# excel sum

我的问题如下: 如果我有一个带静态起点的列让我们说A3和一个动态终点,让我们说A827或任何其他数字,那么获得这一列总和的正确方法是什么?

我的想法如下:

xl.Range sumcell;
            sumcell = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp).Offset[1,0];
            sumcell.Formula = xl.WorksheetFunction.Sum(xlNewSheet.Range["A3"], xlNewSheet.Range["A3"].End(xl.XlDirection.xlDown));

我的第二个想法如下:

xl.Range sumStart = xlApp.get_Range("A3");
            xl.Range sumEnd = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp);
            xl.Range totalCell = sumEnd.Offset[1, 0];
totalCell.Formula = "=SUM(" + sumStart + ":" + sumEnd + ")";

任何人都可以告诉我,如果我走在正确的轨道上,或者我是否需要重新考虑这个想法? 任何形式的帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

我已经自己解决了这个问题。如果有人可能需要/找到这个有用的,这里是:

sumEnd = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp);
        xl.Range totalCell = xlNewSheet.Cells[xlNewSheet.Rows.Count, 1].End(xl.XlDirection.xlUp).Offset[1, 0];

        totalCell.Formula =xlApp.WorksheetFunction.Sum(xlNewSheet.Range[xlNewSheet.Range["A3"], sumEnd]);

原来我不需要在它开始的地方创建一个excel范围!