自动总计

我有一个内部的工作scheme,在Excel中吐出一个“报告”。 它出现在图像左侧的表格中。 我正在尝试为用户编写一个macros,将所有行项自动汇总到标题行中(如右侧所示的公式)

当前和期望的表格 (注意:'0'的值只是空白单元格)

我真正的问题是一个简单的方法来确定Excel文件中的最后一行。 Cell.End(xlDown)和Count函数到目前为止只有我。 但是我发布我的整个问题,以防有人有任何聪明的想法。

P.

你可以创build自己的函数来解决这个问题。 例如:

Public Function SumNew() As Long Dim Col_ As Long Dim Row_ As Long Dim LastRow As Long Col_ = Application.ThisCell.Column Row_ = Application.ThisCell.Row LastRow = Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row SumNew = 0 For i = Row_ + 1 To LastRow If Cells(i, 1) <> vbNullString Then Exit Function 'if you find next filled 'Line Group#' end sums SumNew = SumNew + Cells(i, Col_).Value Next i End Function 

对于示例数据,它看起来像工作:

在这里输入图像描述

这不是很优雅,但应该工作。 如果您知道导入到Excel中的报表永远不会超过一定数量的行(例如不超过10000行),那么select更大的数字(比如50000),然后转到该行Selection.End(xlUp)。 像这样的东西:

 Range("B50000").Select Selection.End(xlUp).Select LastRow = ActiveCell.Row 

这是假设您的报告的最后一行将有列B中的内容,这似乎是在您显示的示例中的情况。