连续和函数

我试图做一个简单的总和function,总和,直到我打到一个空白单元格。 我不知道为什么它不工作。 我正在尝试汇总货币,并将产出作为货币。 到目前为止我有:

Function SumContin(X) Dim Ro As Long Dim Col As Long Dim Ro1 As Long Dim Col1 As Long Ro = Application.WorksheetFunction.Row(X) Col = Application.WorksheetFunction.Column(X) Do While Cells(Ro, Col) <> "" Sum = Sum + CInt(Cells(Ro, Col)) Ro = Ro - 1 Loop End Function 

UPD:

从意见跟进:

我可以使函数在哪里= SumContin(),它从上面的单元格开始?

 Function SumContin() Application.Volatile SumContin = 0 On Error Resume Next With Application.ThisCell If .Row = 1 Then Exit Function If .Offset(-1) = "" Then Exit Function SumContin = Application.Sum(Range(.Offset(-1), .End(xlUp))) End With End Function 

注意:因为使用Application.ThisCell代码,函数将只在从工作表调用它的情况下起作用: =SumContin() ,如果你从任何代码调用它,它将不起作用

对于这个UDF似乎有点矫枉过正,因为在A中提供了必要的范围必须被键入。 一个类似于=SUM(A$1:A1)的运行总计和双击填充手柄可能有时更方便。

使用基于传递的单元格的UDF来定义范围是最有效的,然后使用WorksheetFunction.Sum命令。

这里有一个方法:

 Function SumContin(X As Range) SumContin = WorksheetFunction.Sum(Range(X.Address & ":" & X.End(xlDown).Address)) End Function