利用VBA获得指定行、列中的最后一个非空单元格

论坛 期权论坛 期权     
VBA语言专家   2019-7-21 06:18   4375   0


蓝字关注,加微信NZ9668获资料信息

《VBA代码解决方案》系列书作者
头条百家平台 VBA资深创作者
_______________________________
使用VBA对工作表进行操作时,经常需要定位到指定行或列中最后一个非空单元格,此时可以使用Range对象的End属性,在取得单元格对象后便能获得该单元格的相关属性,如单元格地址、行列号、数值等,如下面的代码所示。
  SubENDRow()
   Dim rng As Range
    Set rng = Sheet1.Range("A65536").End(xlUp)
     MsgBox "A列中最后一个非空单元格是" & rng.Address(0,0) & ",行号" &rng.Row & ",数值" & rng.Value
    Set rng = Nothing
  EndSub
代码解析:
a) ENDRow过程使用消息框显示工作表中A列最后非空单元格的地址、行号和数值。
b)  End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键、、或,语法如下:
expression.End(Direction)
参数expression是必需的,一个有效的对象。
参数Direction是可选的,所要移动的方向,可以为下表所示的XlDirection 常量之一。


c) Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。
运行ENDRow过程结果下图所示。


通过修改相应的参数,能够获得指定行中最后一个非空单元格,如下面的代码所示。
Sub ENDColumn()
    Dim rng As Range
     Set rng = Sheet1.Range("IV1").End(xlToLeft)
      MsgBox "第一行中最后一个非空单元格是" & rng.Address(0, 0)& ",列号" & rng.Column &",数值" &rng.Value
    Set rng = Nothing
  EndSub
代码解析:
ENDColumn过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值,


上面的代码中充分应用了End属性,也是实际工作中经常利用到的一个属性,用于检测数据的录入情况,运行后可以知道非空单元格的数目多少,然后可以利用FOR,NEXT
循环,这样可以减少内存的使用,提高程序的运行效率。
今日内容回向:
1        expression.End(Direction) END属性用哪些利用价值。
2        Direction 值有哪些?

_____________________________

觉得有启发,点个“在看”,转给朋友们
欢迎你“留言”,和作者直接交流

更多关联阅读








  





分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP