首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第5讲:VBA中OFFSET函数的利用

【分享成果,随喜正能量】幸福从来不是跟别人比来的,追求不同,各有活法,开心了就笑,累了就休息,日子安稳踏实就是最大的幸福。做人就怕尊严扫地,保留一点做人的尊严,是人生最大的本钱。尊严不是傲慢,不是自高自大,不是匹夫之勇,不是自以为是,尊严是在强权面前,不屈服、不妥协,坚持自己的立场与原则,保持自己的人格与操守。。

《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实践经验,全部浓缩在下面的各个教程中:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OlY3jEbVU301zleqH_jyOA8A0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券