我只是想知道你是否可以帮助我更好地理解什么.Cells(.Rows.Count,"A").End(xlUp).row做。.End部分。

答案

它用于查找包含"A"列数据的工作表中包含多少行数据。

 lastRowIndex = ws.Cells(ws.Rows.Count, "A").End(xlUp).row

在哪里ws是一个工作表对象。With堵塞

With ws
    lastRowIndex = .Cells(.Rows.Count, "A").End(xlUp).row
End With
  1. ws.Rows.Count返回工作表中的总行数(在 Excel 2010 中为 1048576)。
  2. .Cells(.Rows.Count, "A")返回工作表"A"列中最底部的单元格

然后是End方法。文档对于它的作用是不明确的。

返回一个 Range 对象,该对象表示包含源范围的区域末尾的单元格

特别是它没有定义什么是"区域"。

  • 如果范围是多个单元格,它将使用以下区域rng.cells(1,1)
  • 如果该范围不在某个区域中,或者该范围已经位于该区域的末尾,那么它将沿着该方向行进,直到进入某个区域并返回该区域中第一个遇到的单元格。
  • 如果遇到工作表的边缘,它将返回该工作表边缘的单元格。

所以Range.End不是一个简单的函数。

  1. .row返回该单元格的行索引。

来自: stackoverflow.com