搜索
写经验 领红包

绝对引用和相对引用的区别(绝对引用和相对引用和混合引用的区别)

导语:绝对引用和相对引用

【分享成果,随喜正能量】对未来的期许:要人心之自由,胸襟开放,拿全世界人类曾经走过的路,都要算是我走过的路之一。要有一个远见,超过你的未见。我们要想办法设想我没见过的地方,那个世界还有可能什么样。。

《VBA之Excel应用》是非常经典的,是我推出的第七套教程,定位于初级。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”: 绝对引用和相对引用

第五节 录制宏时,使用绝对(Absolute)引用和相对(Relative)引用的区别

大家好,我们继续VBA的学习,在上一讲中,我们讲到对于初学VBA人员,可以录制一段代码让一些重复的工作能自动完成。这不失为一种提高效率的方法。但我们在录制宏的时候,一定要注意区别绝对引用和相对引用。这节我将就这个问题给大家以详细的讲解。

1 绝对引用时代码的录制效果

所谓绝对引用,是单元格中的绝对单元格引用(例如 $A$1)总是在指定位置引用单元格。如果公式所在单元格的位置改变,绝对引用保持不变。如果多行或多列地复制公式,绝对引用将不作调整。默认情况下,新公式使用相对引用,需要将它们转换为绝对引用。例如,如果将单元格B2 中的绝对引用复制到单元格B3,则在两个单元格中一样,都是 $A$1。

在VBA录制宏的时候默认采用的是绝对引用的方式。

例如,我们要录制一段宏,录制的内容是:在单元格A1中录入:“VBA世界”,A2中录入“VBA学习”,A3中录入“VBA代码”

我们看一下录制的效果:

Sub 宏2()

Range(&34;).Select

ActiveCell.FormulaR1C1 = &34;

Range(&34;).Select

ActiveCell.FormulaR1C1 = &34;

Range(&34;).Select

ActiveCell.FormulaR1C1 = &34;

End Sub

代码截图:

2 相对引用时代码的录制效果

所谓相对单元格引用(例如 A1)是基于包含公式和单元格引用的单元格的相对位置。如果公式所在单元格的位置改变,引用也随之改变。如果多行或多列地复制公式,引用会自动调整。默认情况下,新公式使用相对引用。例如,如果将单元格 B2 中的相对引用复制到单元格 B3,将自动从 =A1 调整到 =A2。

在录制宏的时候,如果需要相对引用,需要按如下的处理方式:

第一:先点击“使用相对应用”;第二:再点击“录制宏”

同样是实现:录制的内容是:在单元格A1中录入:“VBA世界”,A2中录入“VBA学习”,A3中录入“VBA代码”的一段宏,我们看看在选择相对引用的情况下产生的代码:

Sub 宏3()

ActiveCell.FormulaR1C1 = &34;

ActiveCell.Offset(1, 0).Range(&34;).Select

ActiveCell.FormulaR1C1 = &34;

ActiveCell.Offset(1, 0).Range(&34;).Select

ActiveCell.FormulaR1C1 = &34;

End Sub

代码截图:

3 绝对引用录制宏和相对引用录制宏的效果区别

两种方法的代码在实现效果上有什么区别呢?我们先在工作表窗口建立两个运行按钮分别来实现这两种引用的效果,如下图所示的两个按钮。

同时我给出了当前活动单元格的位置;

我们先点击“绝对引用”的运行按钮,实现的效果如下:

我们仍旧把光标点到“C9”单元格的位置,点击“相对引用”的运行按钮,实现的效果如下:

此时我们发现,我们填入的三组字符出现在了C9,C10,C11 三个单元格内。也就是说,在相对引用条件下录入的代码是以相对于当前活动单元格的录入效果。

今日内容回向:

1)什么是绝对引用,什么是相对引用?

2)绝对引用和相对引用条件下录制的宏代码有何不同?

3) 绝对引用和相对引用条件下录制的宏代码在实现效果上有何不同?

本讲内容参考程序文件:工作簿01.xlsm

我20多年的VBA成果全在下面的资料中:

【分享成果,随喜正能量】后来才发现,对待他人,不卑不亢,不仰合,不取悦,做自己就好, 对待工作,少说废话, 多干实事,尽心尽力就好, 对待生活,取舍有度,不慌不忙,

热情积极就好; 对待健康,吃好,睡好,才会身体好,只闻花香,不谈悲喜, 不争一时之短,方得一世之长 。

本文内容由小婷整理编辑!