EXCEL VBA获得指定行列中的最后一个非空单元格 实用代码 图文

2018年1月30日15:59:25EXCEL VBA获得指定行列中的最后一个非空单元格 实用代码 图文已关闭评论 15,965 views
微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com

VBA技巧3 获得指定行、列中的最后一个非空单元格

使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。

Sub LastRow()

Dim rng As Range

Set rng = Sheet1.Range("A"&rows.count).End(xlUp)'rows.count为最大行号,这里为兼容03和07以上

MsgBox "A列中最后一个非空单元格是" & rng.Address(0, 0) _

& ",行号" & rng.Row & ",数值" & rng.Value

Set rng = Nothing

End Sub

代码解析:

LastRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。

End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键<Ctrl+向上键>、<Ctrl+向下键>、<Ctrl+向左键>或<Ctrl+向右键>,语法如下:

expression.End(Direction)

参数expression是必需的,一个有效的对象。

参数Direction是可选的,所要移动的方向,可以为表格 31所示的XlDirection 常量之一。

常量 描述
xlDown -4121 向下
xlToRight -4161 向右
xlToLeft -4159 向左
xlUp -4162 向上

表格 31XlDirection 常量

Range对象的End属性返回的是一个Range()单元格区域)对象,因此可以直接使用该对象的属性和方法。

运行LastRow过程结果如图 31所示。

Excel VBA获得指定行列中的最后一个非空单元格 实用代码

图 31获得A列最后一个非空单元格

通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。

Sub LastColumn()

Dim rng As Range

Set rng = Sheet1.cells(1,columns.count).End(xlToLeft)'columns.count代表最大列号为了 03和07以上通用

MsgBox "第一行中最后一个非空单元格是" & rng.Address(0, 0) _

& ",列号" & rng.Column & ",数值" & rng.Value

Set rng = Nothing

End Sub

代码解析:

LastColumn过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,如图 32所示。

Excel VBA获得指定行列中的最后一个非空单元格 实用代码

图 32获得第一行最后一个非空单元格

 

表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页