excel vba:函数返回值奇怪

时间:2012-01-20 12:15:44

标签: excel function vba

我有一个EXCEL VBA函数,该函数应返回第一个单元格的地址,其中单元格值大于零,但它不起作用。有谁知道为什么?

代码:

Function FindNextFilledCell(RowArray() As Integer, ColArray() As Integer)

For i = UBound(ColArray) To 0
    For j = UBound(RowArray) To 0
        CellValue = cells(RowArray(j), ColArray(i)).Value
        If CellValue > 0 Then
            FindNextFilledCell = cells(RowArray(j), ColArray(i)).Address(False, False)
            Exit Function
        End If
    Next j
Next i

End Function

1 个答案:

答案 0 :(得分:2)

我仍在努力了解你的目的,但我建议第一个错误是:

For i = UBound(ColArray) To 0

而不是

For i = UBound(ColArray) To 0 step -1

这假设您打算以相反的顺序搜索单元格。如果你没有

For i = 0 to UBound(ColArray)

可能会更好。

我发现的下一个错误是你没有定义函数返回的值的类型。尝试:

FindNextFilledCell(RowArray() As Integer, ColArray() As Integer) As String