rmd*_*dlp 28 excel vba excel-vba
我只是想知道你是否能帮助我更好地理解它是什么.Cells(.Rows.Count,"A").End(xlUp).row
.我理解部分之前的.End
部分.
che*_*eak 43
它用于查找包含"A"列中数据的工作表中包含数据的行数.完整用法是
lastRowIndex = ws.Cells(ws.Rows.Count, "A").End(xlUp).row
Run Code Online (Sandbox Code Playgroud)
ws
Worksheet对象在哪里.在问题示例中,暗示声明在一个With
块内
With ws
lastRowIndex = .Cells(.Rows.Count, "A").End(xlUp).row
End With
Run Code Online (Sandbox Code Playgroud)
ws.Rows.Count
返回工作表中的总行数(Excel 2010中的1048576)..Cells(.Rows.Count, "A")
返回工作表中"A"列中最底部的单元格然后是End
方法.该文件是模糊的,以它做什么.
返回一个Range对象,该对象表示包含源范围的区域末尾的单元格
特别是它没有定义"区域"是什么.我的理解是一个区域是一个连续的非空细胞范围.因此,预期的用法是从区域中的单元格开始,并从原始单元格中找到该区域中该方向上的最后一个单元格.但是,当您不使用它时有多个例外:
rng.cells(1,1)
. 所以Range.End
不是一个微不足道的功能.
.row
返回该单元格的行索引.Sam*_*Sam 22
[A1].End(xlUp)
[A1].End(xlDown)
[A1].End(xlToLeft)
[A1].End(xlToRight)
Run Code Online (Sandbox Code Playgroud)
是VBA相当于在单元格A1中并按Ctrl+任意箭头键.它会继续朝着这个方向行进,直到它击中数据的最后一个单元格,或者如果你使用这个命令从一个细胞移动是它将行进,直到它命中包含数据的下一个单元格数据的最后一个单元格.
如果要查找A列中的最后一个"已使用"单元格,可以转到A65536(例如,在XL93-97工作簿中)并按Ctrl +向上"捕捉"到上次使用的单元格.或者在VBA中你会写:
Range("A65536").End(xlUp)
Range("A" & Rows.Count).End(xlUp)
对于具有不同行数的工作簿,出于兼容性原因,这也可以重写.
小智 9
第一部分:
.Cells(.Rows.Count,"A")
Run Code Online (Sandbox Code Playgroud)
将您发送到A列的底行,您已经知道了.
End函数从一个单元格开始,然后根据您告诉它的方向,朝向该方向,直到它到达一组具有文本的单元格的边缘.意思是,如果单元格C4:E4中有文本,则键入:
Sheet1.Cells(4,"C").End(xlToRight).Select
Run Code Online (Sandbox Code Playgroud)
程序将选择E4,最右边的单元格中包含文本.
在您的情况下,代码正在吐出最后一个单元格的行,其中包含A列中的文本.这有帮助吗?