VBA学习(2):Excel VBA初学者编写第一个宏

news2024/10/5 21:13:29

要在Excel中编写宏程序,首先需要了解VBA语言,而快速入门的技巧就是使用宏录制器。

宏录制器就像一台录音机,可以使用VBA监听和记录你在Excel中所做的一切操作。对于初学者来说,你可能不了解VBA,这里,我们会使用宏录制器来记录我们的操作,然后看看记录的指令(也就是代码),以了解VBA是什么。

下面我们来编写第一个VBA宏程序。其功能非常简单,将选择的单元格中的字体设置为加粗、斜体并将其颜色设置为红色。

第1步:选择任意单元格,开启宏录制器

很简单。只需选择任意单元格,然后到功能区“开发工具”选项卡“代码”组中,单击“录制宏”按钮,如下图1所示。(也可以在选择单元格后,直接单击Excel界面左下角的“录制宏”按钮)

第2步:给宏命名

在弹出的“录制宏”对话框中,在“宏名”文本框中输入录制的宏的名字,本示例将宏命名为“SetFontandColor”,如下图2所示。单击“确定”关闭“录制宏”对话框。注意,如果不指定宏名,Excel会以宏1、宏2来自动给宏命名。

第3步:在Excel中执行操作

回到Excel工作表界面,单击功能区“开始”选项卡“字体”组中的“加粗”、“倾斜”按钮,然后单击“字体颜色”下拉按钮设置为红色。

第4步:停止录制

现在,你已经在Excel中执行完想要的操作。回到“开发工具”选项卡,单击“代码”组中的“停止录制”按钮,如下图3所示。(同样,可直接单击Excel界面左下角的“停止录制”按钮)

第5步(可选):将宏指定给按钮

单击“插入”选项卡“插图”组中的“形状”按钮,在工作表中绘制一个矩形并设置合适的格式。然后,在矩形中输入文本“选择单元格后单击我”。接着,在矩形中单击右键,从快捷菜单中选择“指定宏”命令。在弹出的“指定宏”对话框中选择刚才录制的宏“SetFontandColor”,单击“确定”按钮,如下图4所示。

步骤6:验证录制的宏的效果

选择任意单元格,单击“选择单元格后单击我”,可以看到所选单元格中的文字变成红色加粗斜体。

图片

下面,我们来看看并试着理解录制的宏代码。

单击功能区“开发工具”选项卡“代码”组中的“Visual Basic”按钮,如下图5所示。

或者,选择任一工作表标签,单击右键,在快捷菜单中选取“查看代码”命令,如下图6所示。

或者,最快速的方法是按Alt+F11键。

打开VBA编辑器,如下图7所示,你可以查看或编辑VBA代码。

在VBA的工程资源管理器窗口中,双击“模块1”,可以看到SetFontandColor代码如下:

Sub SetFontandColor()
' SetFontandColor 宏
    Selection.Font.Bold = True
    Selection.Font.Italic = True
    With Selection.Font
        .Color = -16776961
        .TintAndShade = 0
    End With
End Sub

代码中:

  • Sub SetFontandColor()告诉Excel正在编写一组新的指令。单词Sub表示VBA的下列行是子过程(或子程序)。在计算机术语中,这是一组相关的指令,必须一起执行操作才有意义。当Excel看到End Sub时,子过程结束。

  • 以单引号(‘)开始的行:表示该行为注释,其作用是便于理解程序。Excel将忽略单引号开始的行。

  • Selection.Font.Bold = True将所选单元格字体设置为粗体。

  • Selection.Font.Italic = True将所选单元格字体设置为斜体。

  • With Selection.Font虽然对你我来说,设置红色字体似乎是一个步骤,但实际上对计算机来说可能不只一步。并且,每当需要对同一事物执行很多操作(如本例中为选定的单元格)时,最好将它们全部捆绑在一起。这是With语句出现的地方。当Excel看到WithSelection.Font时,Excel会认为:“好吧,我将对“选定单元格”的字体进行操作,直到看到EndWith。

  • With语句块内的行:告诉Excel对所选单元格的字体进行操作。本例中,最关键的是.Color= -16776961,告诉Excel将所选单元格字体设置为红色。

  • End With结束With语句块。

  • End Sub结束名为SetFontandColor的宏过程。

要理解这段代码,你可以修改语句,再执行SetFontandColor过程,看修改后的结果。例如,你可以将:

  • .Color = -16776961修改为.Color=65。

  • 将.TintAndShade= 0删除。

  • 甚至按上述所说的,将对Selection.Font的操作全部放在一起:

Sub SetFontandColor1()
' SetFontandColor 宏
    With Selection.Font
        .Bold = True
        .Italic = True
        .Color = -16776961
        .TintAndShade = 0
    End With
End Sub

当然,一个程序中还可能涉及到变量、条件语句、循环语句等。另外,也会出现如上面示例程序中的许多其他的对象名称及其方法和属性,让我们在后续的示例学习中慢慢接触并探索吧。

技术交流,软件开发,欢迎加微信xwlink1996 


作者其他作品:

VBA实战(Excel)(1):提升运行速度

Ribbon第一节:控件大全

HTML实战(1):新建一个HTML

VBA实战(Solidworks二次开发)(1):如何开始

VB.net实战(VSTO):Excel插件的安装与卸载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1833127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用被动DNS(Passive DNS)加强网络安全

通过收集和分析被动DNS数据,可以帮助识别恶意站点,打击钓鱼和恶意软件,本文将介绍如何利用被动DNS(Passive DNS)加强网络安全。 在过去的一些年里,我们目睹了对DNS基础设施的攻击日益增多:对权…

【S32K 进阶之旅】 将 EB 配置生成的 MCAL 代码集成到 S32DS 中

本文介绍如何使用 S32DS 进行 AUTOSAR MCAL 工程的编译和调试,重点在于将 EB 配置生成的 MCAL 代码集成到 S32DS 中。 虽然配置过程较为繁琐,实操过一遍就会熟悉整个工程的框架。以后每次在 EB 中更新配置,生成代码的文件夹已经集成在 S32DS…

Selenium+Pytest自动化测试框架能碰撞出什么样的火花

前言 selenium自动化 pytest测试框架 本章你需要 一定的python基础——至少明白类与对象,封装继承 一定的selenium基础——本篇不讲selenium,不会的可以自己去看selenium中文翻译网 一、测试框架简介 测试框架有什么优点呢: 代码复用率高…

从多线程设计模式到对 CompletableFuture 的应用

大家好,我是 方圆。最近在开发 延保服务 频道页时,为了提高查询效率,使用到了多线程技术。为了对多线程方案设计有更加充分的了解,在业余时间读完了《图解 Java 多线程设计模式》这本书,觉得收获良多。本篇文章将介绍其…

《C++ Primer》导学系列:第 4 章 - 表达式

4.1 基础 4.1.1 基本概念 组合运算符和运算对象 组合运算符是指将两个或多个操作数结合在一起进行运算的符号。在C中&#xff0c;常见的组合运算符包括算术运算符&#xff08;如, -, *, /, %&#xff09;、关系运算符&#xff08;如<, >, <, >, , !&#xff09;…

docker-compose jira、bugzilla、zentao

参见文章&#xff0c;这里是对之前的内容进行了改动&#xff0c;主要讲怎么将zentao容器融入到已有的docker-compose.yml中 一、zentao镜像 从官网上拉取&#xff1a;https://hub.docker.com/r/easysoft/zentao/tags 可以选择自己想要的版本&#xff0c;这里我选择的是开源版…

工厂物料管理系统(数据库课设)

1.课设要求描述 ●实现物料的分类管理; ●实现部门和员工信息管理; ●实现物料的入库和领用管理; ●实现物料的转仓管理; ●创建触发器&#xff0c;实现物料入库和领用时相应物料库存的自动更新; ●创建触发器&#xff0c;实现转仓时转入仓库物料增加、转出仓库物料减少…

线性卷积(相关)和圆周卷积(相关)以及FFT之间的关系(AEC举例)

时域自适应滤波算法中的线性卷积和线性相关运算量较大&#xff0c;导致计算复杂度升高&#xff0c;我们更愿意把这两个信号变换到频域&#xff0c;通过频域相乘的方式来取代时域复杂度相当高的卷积或相关运算。 预备知识&#xff1a;线性卷积&#xff08;相关&#xff09;和圆…

单一管理平台 - Enterprise Global Console

大约三年前&#xff0c;当我们向客户和社区推出控制台时&#xff0c;MinIO 的世界发生了变化。这是可访问性的巨大飞跃。可靠的 CLI 和 MC 命令很快让位于我们新的基于浏览器的 GUI 的速度和直观可用性。对于开发人员和企业 IT 管理员来说&#xff0c;这是一个游戏规则的改变者…

单片机建立自己的库文件(4)

文章目录 前言一、新建自己的外设文件夹1.新建外设文件夹&#xff0c;做项目好项目文件管理2.将之前写的.c .h 文件添加到文件夹中 二、在软件中添加项目 .c文件2.1 编译工程保证没问题2. 修改项目列表下的名称 三、在软件项目中添加 .h文件路径四、实际使用测试总结 前言 提示…

使用 C# 进行面向对象编程:第 10 部分

封装和抽象之间的区别 对于 OOP 初学者来说&#xff0c;封装和抽象之间存在非常基本的区别。他们可能会对此感到困惑。但如果你详细了解这两个主题&#xff0c;就会发现它们之间存在巨大差异。 抽象意味着向用户隐藏不必要的数据。用户只需要所需的功能或根据其需求的输出。例…

遵循法规,科学检测:可燃气体报警器多久检测一次?

在工业生产和日常生活中&#xff0c;可燃气体报警器作为一种重要的安全设备&#xff0c;能够实时监测并预警潜在的可燃气体泄漏风险&#xff0c;对于防范火灾和爆炸事故至关重要。 在这篇文章中&#xff0c;佰德将围绕可燃气体报警器的检测频率展开探讨&#xff0c;包括其功能…

基于WPF技术的换热站智能监控系统15--实时读取PLC数据

1、创建PLC实时数据 1、添加数据块 2、创建6个变量 用来表示水泵1和水泵2的参数&#xff0c;可以根据现场实际情况添加更多的变量参数 3、设置块属性并编译 4、下载该程序到PLC中 5、添加监控表 2、读取设备数据 S7协议下的tcp直接通讯&#xff0c;配置简单&#xff0c;一般P…

大模型泡沫退去,谁能活到下半场?

前言 从今年3月开始&#xff0c;国内企业纷纷下场大模型&#xff0c;铆足劲秀肌肉&#xff0c;如今转向垂直行业淘金&#xff0c;试图争霸行业大模型。我们的心态也逐渐从看乐子&#xff0c;到严肃讨论。 在人工智能的世界&#xff0c;我们经历了众多的概念游戏&#xff0c;在…

泛微开发修炼之旅--18泛微OA节点后操作代码自动退回流程的代码示例

文章链接&#xff1a;17泛微OA节点后操作代码自动退回流程的代码示例

短视频压缩与编码技术在短剧APP小程序开发中的应用

在短剧APP小程序开发中&#xff0c;短视频压缩与编码技术是实现高效视频处理的关键。本文将对这两项技术在短剧APP中的应用进行深入分析。 一、短视频压缩技术的重要性 节省存储空间&#xff1a;通过压缩技术&#xff0c;可以减小视频文件的大小&#xff0c;从而节省服务器和用…

【普中】基于51单片机的电子秒表数码管显示( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题 设计资料内容清单&&下载链接资料下载链接&#xff1a;讲解视频&#xff1a;1.主要功能&#xff1a;2.仿真3. 程序代码4. 设计报告 【普中】基于51单片机的电子秒表数码管显示 ( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus8.16(有低版…

8.12 矢量图层面要素单一符号使用一(简单填充)

文章目录 前言简单填充&#xff08;Simple fill&#xff09;QGis设置面符号为简单填充&#xff08;Simple fill&#xff09;二次开发代码实现简单填充&#xff08;Simple fill&#xff09; 总结 前言 本章介绍矢量图层线要素单一符号中简单填充&#xff08;Simple fill&#x…

玩转nRF52840-DK开发套件(1)

Nordic Semiconductor nRF52840开发套件 (nRF52840-DK) 是一款采用nRF52840多协议SoC&#xff08;片上系统&#xff09;的多功能单板开发工具&#xff0c;适用于蓝牙5.2/蓝牙低功耗、802.15.4 / Thread、ANT/ANT以及2.4GHz专有应用。nRF52840-DK与 Arduino Uno Revision 3 标准…

【html】用html5+css3+JavaScript制作一个计数器

目录 简介&#xff1a; 效果图&#xff1a; 源码&#xff1a; html: CSS: JS: 源码解析&#xff1a; 简介&#xff1a; 在日常生活当中很多事情都需要用到计数器特别是在体育运动当中&#xff0c;可以我们那么我们可不可以通过网页来制作一个计数器呢答案是肯定的我们需要利…