Range.End()困惑

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

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

为什么是xlDirection xlUp? 为什么不是xlDown? 它是从底部开始,然后上升呢? 我知道这是错误的,因为我在我的代码中使用它(并且在find最后使用的行时导致所有人使用xlUp),但我不知道为什么。 有人可以解释吗?

End(xlDown)从顶部向下search,find空白单元格之前的最后一个使用过的单元格。 但是,如果数据中有空白单元格,那可能不是最后使用的单元格。 手动操作:自己突出显示一个包含与空白混合的数据的列,然后按Ctrl键 – 它将在第一个空白单元格之前进入单元格。

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