VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用

这篇具有很好参考价值的文章主要介绍了VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

【分享成果,随喜正能量】放开心胸,堂堂正正,不计较眼前荣辱得失。一生做事光明磊落,心境恬然自得,自然吉祥遂愿,平安自在,乐享天年。 得此偈者,命途多舛,起起伏伏,时而阴云密布,时而朗天开。虽命途风雨阴晦,坡坎沟壑,但要堂堂正正做人,这样才能时来运转,祥光永照,天年长享。。

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

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

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

所谓绝对引用,是单元格中的绝对单元格引用(例如$A$1)总是在指定位置引用单元格。如果公式所在单元格的位置改变,绝对引用保持不变。如果多行或多列地复制公式,绝对引用将不作调整。默认情况下,新公式使用相对引用,需要将它们转换为绝对引用。例如,如果将单元格B2 中的绝对引用“=$A$1”复制到单元格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

代码截图:

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

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

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

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

实现同样的录制内容:在单元格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

代码截图:

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

今日内容回向:

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

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

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

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

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

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言

VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用,VBA,OFFICE,开发语言文章来源地址https://www.toymoban.com/news/detail-801962.html

到了这里,关于VBA之Excel应用第五节:录制宏时,使用绝对引用和相对引用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab绘图(第五节-三维曲面)

    具体讲述了三维曲面绘图方法等。 此时所有点坐标可以表示为: x=[2 2 2 2 2 2;3 3 3 3 3 3;4 4 4 4 4 4;5 5 5 5 5 5;6 6 6 6 6 6] y=[3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8;3 4 5 6 7 8] 矩阵x,y就是该平面内的网格坐标矩阵。 (1)利用矩阵运算生成 (2)利用meshgrid函数生成 [X,Y]=meshgrid(x,y); 其中,

    2023年04月14日
    浏览(35)
  • Verilog 学习第五节(串口发送部分)

    1:串口通信模块设计的目的是用来发送数据的,因此需要有一个数据输入端口 2:串口通信,支持不同的波特率,所以需要一个 波特率设置端口 3:串口通信的本质就是将8位并行数据通过一根信号线,在不同的时刻传输并行数据的不同位,通过多个时刻,最终将8位并行数据

    2023年04月26日
    浏览(30)
  • 【数据结构初阶】第五节.栈的详讲

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、栈的基本认识 二、栈模拟实现:  三、栈的实战演练 3.1 有效的括号 3.2 逆波兰表达式 3.3 栈的压入、弹出序列 总结 上一节内容我们学习了链表的有关内容,今天我们将进行栈的学习

    2023年04月23日
    浏览(39)
  • 【Git 入门教程】第五节、Git远程仓库

    Git是一种分布式版本控制系统,它允许开发者在不同计算机之间协作并共享代码。在本文中,我们将介绍如何以Git为基础进行远程协作。其中包括克隆仓库、推送代码、拉取代码等操作。 要协作开发一个Git项目,需要从服务器上获取该项目的副本。 运行以下命令来克隆Git仓

    2024年02月01日
    浏览(43)
  • Excel vba 如何使用sql语句

    Excel VBA 可以通过 ADODB 对象库来使用 SQL 语句。 首先,需要在 VBA 编辑器中打开“工具”菜单,选择“引用”并勾选“Microsoft ActiveX Data Objects x.x Library”(x.x 为版本号,通常为最新版本)。 接下来,可以使用 ADODB 对象来连接数据库、执行 SQL 查询、更新数据库等操作。下面是一

    2024年02月12日
    浏览(27)
  • 第五节 zookeeper集群与分布式锁_2

    1)要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁。 线程锁 :主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。 线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,

    2024年02月19日
    浏览(33)
  • 【测试开发】第五节.测试——自动化测试(Selenium工具)

    作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句: 人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、自动化测试的概念以及分类 二、Selenium—web自动化测试工具 2.1 自动化测试的一些前置工作 2.2 第一个自动化实例

    2024年02月04日
    浏览(52)
  • 使用chatgpt写VBA程序操作EXCEL

    在chatgpt输入,我有个EXCEL,它有4列,第一列是序号,第二列是机号,第三列是日期,第四列是能耗。同一机号会对应多个日期和多个该日期的能耗。我想让同一个机号的数据下新增加一行,在这一行内算出该机号不同日期下的能耗平均值,填入表格,请帮我写VBA函数执行这个

    2024年02月19日
    浏览(29)
  • Vue2项目练手——通用后台管理项目第五节

    面包屑 使用组件 使用vuex存储面包屑数据 src/store/tab.js src/components/CommonAside.vue src/components/CommonHeader.vue tag 使用组件 文件目录 CommonTag.vue Main.vue 全部代码: tabs.js 全部代码: 使用的组件 对话框 表单 页面布局与校验 Users.vue

    2024年02月10日
    浏览(29)
  • VBA Excel自定义函数的使用 简单的语法

    一个简单的教程,实现VBA自定义函数。 新建模块 复制后面的代码放进来 函数的入口参数不定义,则认为是一块区域; 反之,如FindChar1 As String,则认为是输入的单值。 循环和分支如下例子,VB比较接近自然语言,英语有功底的话,写起来还是比较舒服的。 以下实现的是一个

    2024年02月10日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包