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

279 篇文章 0 订阅

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

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

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第5讲:VBA中OFFSET函数的利用bb946dd8c5d5a05685acb3059a02e1ea.jpeg

第五讲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

代码截图:

53431db0bb1596d64990017b723af289.jpeg

今日内容回向:

1 OFFSET函数在VBA中的含义是什么?

2 OFFSET函数在VBA中有哪些利用。

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

3966004df6d376cc4d609eb91d7d9138.jpeg

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


3551ebe2bcc0b142a1d6402f25df5671.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值