我有一个内部计划,在Excel中发出“报告”。它出现在图像左侧的表格中。我正在尝试为用户编写宏,自动将所有行项目汇总到标题行中(如右图所示,公式显示)
(注意:'0'的值只是空白单元格)
我的实际问题是确定Excel文件中最后一行的简便方法。 Cell.End(xlDown)和Count函数到目前为止只得到了我。但是我发布了我的整个问题,以防有人有任何聪明的想法。
答案 0 :(得分:1)
P上。
您可以创建自己的功能来解决此问题。例如:
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
对于样本数据,它看起来像是有效的:
答案 1 :(得分:0)
这不是很优雅,但应该有效。如果您知道导入Excel的报表永远不会超过一定数量的行(例如,不超过10000行),那么选择甚至更大的数字(比如50000),转到该行然后Selection.End(xlUp)。像这样:
Range("B50000").Select
Selection.End(xlUp).Select
LastRow = ActiveCell.Row
这假设您的报告的最后一行将包含B列中的内容,这在您显示的示例中就是这种情况。