Excel 宏教程:绝对和相对引用的区别

录制宏时,使用相对引用和不使用有什么区别?什么时候使用,什么时候不使用相对引用?

认识「使用相对引用」命令

首先,我们先认识使用相对引用命令。该命令位于【开发工具】选项卡、【代码】命令组,在录制宏命令下方。该命令具有以下两种状态:

  • 默认状态下,该命令在未启用状态,即背景色为浅色。这个时候,录制宏,将采用绝对引用的方式。
  • 点击后,命令会处于启用状态,背景色为深色。这个时候,录制宏,将采用相对引用的方式。

 

绝对引用和相对引用的区别

录制宏时,根据实际情况,工作表单元格区域将会出现以下几种位置:

  • 初始位置。录制宏开始时,当前选中的单元格。初始位置可以是单元格,也可以是单元格区域。
  • 过程位置。录制宏过程中,使用鼠标或键盘方向键选中的单元格。与初始位置类似,可以是单元格,也可以是单元格区域。

绝对引用和相对引用区别将体现在初始位置和过程位置的记录方式上。

首先,两者的相同点是,针对初始位置,两者的初始位置是相同的。Excel 只记录一个「选中的区域」的参数,不会记录选中的单元格地址信息。

两者的不同点就在于,两者对过程位置的记录方式不同。

  • 绝对引用,录制宏过程中,记录选中的单元格的绝对地址信息。例如,从初始位置 A1,再选中 A10,绝对引用只记录 A10。
  • 相对引用,录制宏过程中,记录初始位置单元格和最新选中单元格离初始位置的偏移量。例如,从初始位置 A1,再选中 A10,相对引用记录 A1 和偏移量 [9, 0]。

 

绝对引用和相对引用实战

为了将两者的区别更好地体现出来,我们录制两个几乎相同的宏,一个未开启相对引用,一个开启相对引用。

宏的内容是:初始位置是 B3 单元格,开始录制宏,下一步选中旁边的 C3 单元格,录入 C3,Ctrl+Enter 结束如输入,最后点击结束录制。

第一个,未开启相对引用,即使用绝对引用录制,宏名称设为绝对引用宏。

第二个,开启相对引用录制,宏名称设为相对引用宏。

现在我们已录制好了两个宏,接下来在相同条件下运行两个宏,看看两者有什么区别。

绝对引用实例

首先,选中 B10 单元格,点击宏命令,弹出宏列表,选择「绝对引用」,执行。

可以看到,绝对引用宏运行后,在 C3 单元格录入了 C3,与初始位置 B10 没有关系。

相对引用实例

然后,我们清除 C3 单元格的内容,相同的步骤,运行「相对引用」宏。

可以看到,这次在 C10 单元格录入了 C3,即离 C10 单元格向右偏离了一个列,与最初录制的宏的偏移距离相同。

通过以上例子可以看出来,绝对引用“只知道”绝对地址;而相对引用既知道初始位置,又知道离初始位置的偏移量。

 

绝对引用和相对引用的使用场景

如果你的目标单元格或单元格区域,在工作表的固定位置处,不随初始位置变化而变化,那么使用绝对引用方式。例如,在固定位置冻结窗格,这种情况,初始位置无论在哪里,冻结位置始终在固定位置。

如果你的目标单元格或单元格区域,在工作表上的位置不固定,随初始位置变化而变化,那么使用相对引用方式。

 

总结

如果没有在实际中使用过两种引用方式,这篇文章读起来可能有点费力,绝对相对概念不容易理解。所以建议使用不同的方式录制多个宏,自己体会两者的不同,将有助于加深理解。

转载注明:文章转载自「懒人Excel - www.lanrenexcel.com
订阅评论
提醒
4 评论
最新
最旧 最多投票
内联反馈
查看所有评论
学无止境
6 月 前

同一个宏内能不能同时有锁定和相对的代码呢?比如不同位置引用同一位置的值

酸菜鱼
1 年 前

录入宏之后有没有一键自动填入的办法?如果我的对应是:临床监查员1-22;临床监查员2-23.那我每次都要点击宏才能对应填入,还不如直接手动输入快?还是我学习这个方法有什么偏差?
还有为什么我快捷键设置为(Ctrl+Shift+W或者是E)都不好使呢?只有Q是可以运行的,这是什么原因呢?期待回复

4
0
希望看到您的想法,请您发表评论x