excel vba:为什么这个函数无限循环?

时间:2013-04-16 21:24:35

标签: excel excel-vba vba

我编写了以下函数来搜索工作表中最后一个可用的空白行。

 Function findlastLog_Row() As Integer
    Dim i As Integer

    i = 1 'start at row 1

    Do Until Sheets("Log").Cells(i, 1) = ""
        i = i + 1
    Loop

    findlastLog_Row = i
End Function

任何想法为什么一遍又一遍地循环。它似乎从倒数第二行findlastLog_Row = i开始。最后一行是返回i的值。我是否过于简单化了?

2 个答案:

答案 0 :(得分:1)

这是你在尝试的吗?

Sub Sample()
    Debug.Print findlastLog_Row
End Sub

Function findlastLog_Row() As Long
    Dim ws As Worksheet

    Set ws = ThisWorkbook.Sheets("Log")

    With ws
        findlastLog_Row = .Range("A" & .Rows.Count).End(xlUp).Row
    End With
End Function

答案 1 :(得分:0)

尝试将其更改为Sheets(“Log”)。Cells(i,1).Value(因此最后是.Value)。 .Cells()将返回一个Range对象。我不完全确定范围的默认属性是什么,但它可能不是.Value属性。