【分享成果,随喜正能量】幸福从来不是跟别人比来的,追求不同,各有活法,开心了就笑,累了就休息,日子安稳踏实就是最大的幸福。做人就怕尊严扫地,保留一点做人的尊严,是人生最大的本钱。尊严不是傲慢,不是自高自大,不是匹夫之勇,不是自以为是,尊严是在强权面前,不屈服、不妥协,坚持自己的立场与原则,保持自己的人格与操守。。
《VBA代码解决方案》(10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第5讲:VBA中OFFSET函数的利用
第五讲VBA中OFFSET函数的利用
今日继续讲VBA实用代码的第五讲,相信大家通过这系列的文章学到了很多,今日着重讲解OFFSET函数在VBA中的利用。
1 活动单元格向上和向下的移动
1) ’Range("A32", Range("A32").End(xlUp)).Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
语句说明:执行上述代码后选择当前活动单元格向上至第一个非空单元格。
l 备注:ActiveCell是指当前活动单元格。
2) ’Range("A1", Range("A1").End(xltoLeft)).Select
Range(ActiveCell, ActiveCell.End(xltoLeft)).Select
语句说明:执行上述代码后选择当前活动单元格向左至第一个非空单元格。
备注:是 "xlTOLeft"而不是 "xlLeft"
2利用OFFSET函数实现单元格的移动
3)’Range("A2", Range("A2").Offset(0, 10)).Select
Range(ActiveCell, ActiveCell.Offset(0, 10)).Select
语句说明:执行上述代码后选择当前活动单元格向右至第10个单元格。
n备注: OFFSET函数可以把他看做一个单元格的属性,即Range.Offset 属性。返回 Range 对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。
表达式:Offset(RowOffset, ColumnOffset)
其中参数:RowOffset, ColumnOffset代表偏移行,列。数字可以是正数,负数,零值
RowOffset 可选 区域偏移的行数(正数、负数或0(零))。正数表示向下偏移,负数表示向上偏移。默认值是 0。
ColumnOffset 可选 区域偏移的列数(正数、负数或0(零))。正数表示向右偏移,负数表示向左偏移。默认值是 0。
4)’Range("M20", Range("M20").Offset(0, -10)).Select
Range(ActiveCell, ActiveCell.Offset(0, -10)).Select
语句说明:执行上述代码后选择当前活动单元格向左至第10个单元格。
备注:ColumnOffset 代表区域偏移的列数,负数表示向左偏移。
5) Range("a2", Range("a2").Offset(10, 0)).Select
Range(ActiveCell, ActiveCell.Offset(10, 0)).Select
语句说明:执行上述代码后,选择当前活动单元格向下至第10个单元格。
l备注:RowOffset 代表区域偏移的行数,正数表示向下偏移,负数表示向上偏移。默认值是 0。
6) Range("A1").End(xlDown).Offset(1, 0).Select
语句说明:执行上述代码后,选择该列中第一个空单元格(A1,A2非空)
l备注:End(xlDown)是指向下移动
7) Range("A1").End(xltoRight).Offset(0,1).Select
语句说明:执行上述代码后,选择该行中第一个空单元格(A1,B1非空):
l备注:End(xltoRight)是向右移动。
8) ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
语句说明:执行上述代码后,移至当前行的第一个单元格的动作(即你按下“Home”键的动作)
nActiveCell.Offset( -ActiveCell.Row + 1,0).Select
语句说明:执行上述代码后,移至当前列的第一个单元格。
l备注:充分利用OFFSET函数,实现单元格的选择。
9) ActiveCell.Offset(13, 14).Select
Selection.Offset(-3, -4).Select
语句说明:执行上述代码后,实现单元格选择的移动。
l备注:你可以定义一变量,并且用offset来实现,
例如:varFreightRowsCount = Range("A1").CurrentRegion.Rows.Count
ActiveCell.Offset(varFreightRowsCount, 0).Select
本讲应用的测试代码:
Sub mynz_5() '第5讲 VBA中OFFSET函数的实际利用
Sheets("5").Select
'1)
Range("e4").Select
Range(ActiveCell, ActiveCell.End(xlUp)).Select
'2)
Range("e4").Select
Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
'3)
Range("e4").Select
Range(ActiveCell, ActiveCell.Offset(0, 3)).Select
'4)
Range("e4").Select
Range(ActiveCell, ActiveCell.Offset(0, -3)).Select
'5)
Range("e4").Select
Range(ActiveCell, ActiveCell.Offset(3, 0)).Select
'6)
Range("A1").End(xlDown).Offset(1, 0).Select
'7)
Range("A1").End(xlToRight).Offset(0, 1).Select
'8)
Range("e4").Select
ActiveCell.Offset(0, -ActiveCell.Column + 1).Select
'9)
Range("a1").Select
ActiveCell.Offset(13, 14).Select
Selection.Offset(-3, -4).Select
End Sub
代码截图:
今日内容回向:
1 OFFSET函数在VBA中的含义是什么?
2 OFFSET函数在VBA中有哪些利用。
本讲内容参考程序文件:VBA代码解决方案(1-19).xlsm
我2多年的VBA实践经验,全部浓缩在下面的各个教程中:
领取专属 10元无门槛券
私享最新 技术干货