为了达到最佳学习体验,还没有阅读宏系列文章的同学,建议先阅读之前的文章,具备基本的宏知识。
好了,开始我们今天的正题。录制宏时,使用相对引用和不使用有什么区别?什么时候使用,什么时候不使用相对引用?
image认识「使用相对引用」命令
首先,我们先认识使用相对引用命令。该命令位于【开发工具】选项卡、【代码】命令组,在录制宏命令下方。该命令具有以下两种状态:
- 默认状态下,该命令在未启用状态,即背景色为浅色。这个时候,录制宏,将采用绝对引用的方式。
- 点击后,命令会处于启用状态,背景色为深色。这个时候,录制宏,将采用相对引用的方式。
绝对引用和相对引用的区别
录制宏时,根据实际情况,工作表单元格区域将会出现以下几种位置:
- 初始位置。录制宏开始时,当前选中的单元格。初始位置可以是单元格,也可以是单元格区域。
- 过程位置。录制宏过程中,使用鼠标或键盘方向键选中的单元格。与初始位置类似,可以是单元格,也可以是单元格区域。
绝对引用和相对引用区别将体现在初始位置和过程位置的记录方式上。
首先,两者的相同点是,针对初始位置,两者的初始位置是相同的。Excel 只记录一个「选中的区域」的参数,不会记录选中的单元格地址信息。
两者的不同点就在于,两者对过程位置的记录方式不同。
- 绝对引用,录制宏过程中,记录选中的单元格的绝对地址信息。例如,从初始位置 A1,再选中 A10,绝对引用只记录 A10。
- 相对引用,录制宏过程中,记录初始位置单元格和最新选中单元格离初始位置的偏移量。例如,从初始位置 A1,再选中 A10,相对引用记录 A1 和偏移量 [9, 0]。
绝对引用和相对引用实战
为了将两者的区别更好地体现出来,我们录制两个几乎相同的宏,一个未开启相对引用,一个开启相对引用。
宏的内容是:初始位置是 B3 单元格,开始录制宏,下一步选中旁边的 C3 单元格,录入 C3,Ctrl+Enter 结束如输入,最后点击结束录制。
第一个,未开启相对引用,即使用绝对引用录制,宏名称设为绝对引用宏。
image第二个,开启相对引用录制,宏名称设为相对引用宏。
image现在我们已录制好了两个宏,接下来在相同条件下运行两个宏,看看两者有什么区别。
首先,选中 B10 单元格,点击宏命令,弹出宏列表,选择「绝对引用」,执行。
image可以看到,绝对引用宏运行后,在 C3 单元格录入了 C3,与初始位置 B10 没有关系。
然后,我们清除 C3 单元格的内容,相同的步骤,运行「相对引用」宏。
image可以看到,这次在 C10 单元格录入了 C3,即离 C10 单元格向右偏离了一个列,与最初录制的宏的偏移距离相同。
通过以上例子可以看出来,绝对引用“只知道”绝对地址;而相对引用既知道初始位置,又知道离初始位置的偏移量。
绝对引用和相对引用的使用场景
如果你的目标单元格或单元格区域,在工作表的固定位置处,不随初始位置变化而变化,那么使用绝对引用方式。例如,在固定位置冻结窗格,这种情况,初始位置无论在哪里,冻结位置始终在固定位置。
如果你的目标单元格或单元格区域,在工作表上的位置不固定,随初始位置变化而变化,那么使用相对引用方式。
总结
如果没有在实际中使用过两种引用方式,这篇文章读起来可能有点费力,绝对相对概念不容易理解。所以建议使用不同的方式录制多个宏,自己体会两者的不同,将有助于加深理解。
网友评论