0

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

 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。我是否过于简单化了这一点?

4

2 回答 2

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
于 2013-04-16T21:28:21.780 回答
0

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

于 2013-04-16T21:29:05.067 回答