【分享成果,随喜正能量】对未来的期许:要人心之自由,胸襟开放,拿全世界人类曾经走过的路,都要算是我走过的路之一。要有一个远见,超过你的未见。我们要想办法设想我没见过的地方,那个世界还有可能什么样。。
《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("A1").Select
ActiveCell.FormulaR1C1 = "VBA世界"
Range("A2").Select
ActiveCell.FormulaR1C1 = "VBA学习"
Range("A3").Select
ActiveCell.FormulaR1C1 = "VBA代码"
End Sub
代码截图:
2 相对引用时代码的录制效果所谓相对单元格引用(例如 A1)是基于包含公式和单元格引用的单元格的相对位置。如果公式所在单元格的位置改变,引用也随之改变。如果多行或多列地复制公式,引用会自动调整。默认情况下,新公式使用相对引用。例如,如果将单元格 B2 中的相对引用复制到单元格 B3,将自动从 =A1 调整到 =A2。
在录制宏的时候,如果需要相对引用,需要按如下的处理方式:
第一:先点击“使用相对应用”;第二:再点击“录制宏”
同样是实现:录制的内容是:在单元格A1中录入:“VBA世界”,A2中录入“VBA学习”,A3中录入“VBA代码”的一段宏,我们看看在选择相对引用的情况下产生的代码:
Sub 宏3()
ActiveCell.FormulaR1C1 = "VBA世界"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "VBA学习"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "VBA代码"
End Sub
代码截图: