excel 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 

我仍然试图了解你正在尝试做什么,但我build议第一个错误是:

 For i = UBound(ColArray) To 0 

代替

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

这假设你打算按相反的顺序search单元格。 如果你没有

 For i = 0 to UBound(ColArray) 

可能会更好。

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

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