对xlDown

时间:2015-11-27 16:30:42

标签: excel-vba excel-2016 vba excel

我们使用代码行找到最后一行

  lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

我很清楚我对xlDown的概念理解。我引用Sheet1中B列中的数据,如下所示。

xldown_issue1

我对End(xlDown)的理解是它从上到下搜索在空白单元格之前找到最后使用过的单元格。可以通过按下ctrl来模拟它的概念。如果我们突出显示包含与空白混合的数据的列,然后按下ctrl - 它将转到第一个空白单元格之前的单元格。在B列表1中按下ctrl,进入B2,然后进入B18。但是,如果我使用以下代码片段,我将最后一行设为1048576。

xldown_issue2

此代码段的逻辑是什么? 任何人都可以解释一下,澄清这个微不足道的问题。

1 个答案:

答案 0 :(得分:2)

如果删除.End()

,您将获得相同的结果
lastRow = .Cells(.Rows.Count, "B").Row

这是因为ws.Cells(ws.Rows.Count, "B")已经是B列的最后一个可能单元格。允许在其上调用.End(),但什么都不做,因为无处可去。

否则你的理解是正确的。