有时候,在进行Excel开发时,需要知道某列的最后一行的行号。Excel也提供了相关功能:Range.End属性。
Dim strCell As String
Dim nLastUseRow As Long
Dim nLastRcdRow As Long
Dim Rng As Range
'为最后一个单元格所在行 , 即最后一行,该函数表示Sheet表的使用区域中的最后一行
nLastUseRow = Cells.SpecialCells(xlCellTypeLastCell).Row
' 得到A列单元格的最后一行
strCell = "A" + CStr(nLastUseRow + 1)
Set Rng = Range(strCell).End(xlUp)
nLastRcdRow = Rng.Row' 得到行号
需要说明的是:Cells.SpecialCells(xlCellTypeLastCell).Row 指的是使用区域最后一行,并不是最后有文本单元格的一行。
比如:开始我用了100行,随后我又删除了50行,则Cells.SpecialCells(xlCellTypeLastCell).Row = 100。
当然,如果你保存了文件,则Cells.SpecialCells(xlCellTypeLastCell).Row = 50 了。
所以,可以通过联合Range.End属性实现快速定位到最后一个单元格上。
具体帮助说明:(Excel Help)
返回一个
Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。
Range 对象,只读。
语法
表达式.End(Direction)
表达式 一个代表 Range 对象的变量。
参数
名称 |
必选/可选 |
数据类型 |
描述 |
Direction |
必选 |
XlDirection |
所要移至的方向。 |
示例
本示例选定包含单元格 B4 的区域中 B 列顶端的单元格。
Visual Basic for Applications |
Range("B4").End(xlUp).Select |
本示例选定包含单元格 B4 的区域中第 4 行尾端的单元格。
Visual Basic for Applications |
Range("B4").End(xlToRight).Select |
本示例将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格。
Visual Basic for Applications |
Worksheets("Sheet1").Activate
Range("B4", Range("B4").End(xlToRight)).Select |
指定移动的方向。
版本信息
已添加版本: Excel 2007
名称 |
值 |
描 述 |
xlDown |
-4121 |
向下。 |
xlToLeft |
-4159 |
向左。 |
xlToRight |
-4161 |
向右。 |
xlUp |
-4162 |
向上。 |