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

【分享成果,随喜正能量】修行佛法从哪儿下手呢?要从信心下手。佛法大海,唯信能入。三皈依就是世间获得吉祥如意,出世间获得究竟解脱的正因,慎勿退失,谨守修行。。

《VBA代码解决方案》(10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第6讲:利用VBA获得指定行、列中最后一个非空单元格第6讲:利用VBA获得指定行、列中最后一个非空单元格_第1张图片

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

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

1 利用End()属性获得指列中的最后一个非空单元格的代码

Sub mynz_6_1() '第6讲 利用VBA获得指定行、列中的最后一个非空单元格

     Dim rng As Range

     Set rng = Sheets("6").Range("A1048576").End(xlUp)

     MsgBox "A列中最后一个非空单元格是" & rng.Address(0, 0) & ",行号" & rng.Row & ",数值:" & rng.Value

     Set rng = Nothing

End Sub

2代码的解读及实现效果

代码解析:

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

2) End属性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。等同于按键

语法如下:

expression.End(Direction)

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

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

第6讲:利用VBA获得指定行、列中最后一个非空单元格_第2张图片

c) Range对象的End属性返回的是一个Range对象,因此可以直接使用该对象的属性和方法。

运行ENDRow过程结果下图所示。

第6讲:利用VBA获得指定行、列中最后一个非空单元格_第3张图片

3 获得指行中的最后一个非空单元格的代码

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

Sub mynz_6_2() '第6讲 利用VBA获得指定行、列中的最后一个非空单元格

     Dim rng As Range

      Set rng = Sheets("6").Range("xfd1").End(xlToLeft)

      MsgBox "第一行中最后一个非空单元格是" & rng.Address(0, 0) & ",列号" & rng.Column & ",数值:" & rng.Value

     Set rng = Nothing

End Sub

代码解析:过程使用消息框显示工作表中第一行最后一个非空单元格的地址、列号和数值、

运行效果:

第6讲:利用VBA获得指定行、列中最后一个非空单元格_第4张图片

上面的代码中充分应用了End属性,在实际的工作中我们也是经常利用到的一个属性,用于检测数据的录入情况,运行后可以知道非空单元格的数目多少,然后可以利用FOR,NEXT

循环,这样可以减少内存的使用,提高程序的运行效率。

今日内容回向:

1 expression.End(Direction)END属性用哪些利用价值。

2 Direction 值有哪些?

本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm

第6讲:利用VBA获得指定行、列中最后一个非空单元格_第5张图片

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

第6讲:利用VBA获得指定行、列中最后一个非空单元格_第6张图片


你可能感兴趣的:(VBA,OFFICE,开发语言)