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

2018年1月30日15:59:25 评论 11,182 views
198元黄金VIP包含 站内所有资源免费+VBA175+基础408+代码助手VIP+Q群答疑+
点我打赏升级VIP 教程淘宝购买链接 加微信EXCEL880A 课领取所有教程7天免费试学 教程所有目录excel880.com/mulu

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获得第一行最后一个非空单元格

 

  • 微信扫码免费学习
  • 免费学习48小时
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin

发表评论

您必须才能发表评论!