Range.End()Confuzzlement

mla*_*m13 2 excel vba excel-vba

我有一个关于VBA中Range.End()属性的一般问题.我在这里阅读了这个属性 ,但我仍然感到困惑.例:

    With ws
       lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
       MsgBox ("Last row for xlUP is: " & lastRow)
    End With
Run Code Online (Sandbox Code Playgroud)

为什么是xlDirection xlUp?为什么不是xlDown?它是从底行开始然后上升吗?我知道这是错误的,因为我在我的代码上使用它(并且导致每个人在找到最后使用的行时使用xlUp),但我不知道为什么.有人可以解释一下吗?

Jer*_*iah 6

End(xlDown)从上到下搜索在空白单元格之前找到最后使用的单元格.但如果数据中有空白单元格,那可能不是最后使用过的单元格.手动执行此操作:突出显示包含与空白混合的数据的列,然后按下ctrl - 它将转到第一个空白单元格之前的单元格.

另一方面,End(xlUp)从范围的底部向上搜索空白单元格之前的第一个使用的单元格.这将始终是范围内最后一个使用过的单元格,因为我们从底部开始.