vba访问函数提取单元格值

我正在尝试编写一个特定列的第一个以前的加值单元格的提取单元格string值的函数。

我试图更好地解释:我有一个女巫专栏不是所有细胞cointans价值观。 所以如果我想build立一个接受参数1单元格的函数,例如'A5'。 如果进入A5单元格没有任何值,则检查前一个单元格(A4)是否具有某个值。 如果再次失败,则recursion地返回(A3..A2..A1)直到find一些东西。

Public Function getPreviousValorizedCellValue(ByVal cell As Range) As String If (cell.Value = "") Then Set cell = cell.Offset(-1, 0) getPreviousValorizedCellValue (cell) Else: getPreviousValorizedCellValue = cell.Value End If End Function 

它不工作。 Excel给我错误

有任何想法吗?

尝试这个:

 Public Sub TestgetPrevious() Dim cell As Range Set cell = ActiveSheet.Range("A5") MsgBox getPreviousValorizedCellValue_v2(cell) End Sub Public Function getPreviousValorizedCellValue_v2(ByVal cell As Range) As String Debug.Print cell.Address If cell.Row <= 0 Then Exit Function If (Trim(cell.Value = "")) Then If cell.Row > 1 Then Set cell = cell.Offset(-1, 0) getPreviousValorizedCellValue_v2 = getPreviousValorizedCellValue_v2(cell) Else getPreviousValorizedCellValue_v2 = "" End If Else getPreviousValorizedCellValue_v2 = cell.Value End If End Function 

尝试下面的代码。

 Function Foo(iRange As Range) For i = iRange.Row To 1 Step -1 If Trim(Range("A" & i).Value) <> "" Then Foo = Range("A" & i).Value 'Put the code you want here Exit Function End If Next i End Function