我试图为某列的第一个前一个增值单元格的提取单元格字符串值编写一个函数。
我试着更好地解释一下: 我在巫婆的专栏中并不是所有的细胞cointans值。 因此,如果我想构建一个接受参数1单元格的函数,例如' A5&#39 ;. 如果进入A5单元格,则没有任何值,它检查前一个单元格(A4)是否具有某个值。如果再次失败,它会递归返回(A3..A2..A1),直到找到它为止。
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给我错误
有什么想法吗?
答案 0 :(得分:1)
试试这个:
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
答案 1 :(得分:0)
请尝试以下代码。
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