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

要在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.mfbz.cn/a/718117.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

抖音用户新作品监控助手,第一时间获取博主作品信息。

声明: 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。包含关注,点赞等 抖音新作品监控助手系统是一个功能强大的…

ChatGPT-4o赋能科研:自然科学研究的新篇章

自然科学研究遵循严谨的科学方法论,包括文献调研、问题综述、试验设计、提出假设、数据清洗、统计诊断、大数据分析、经典统计模型(回归模型、混合效应模型、结构方程模型、Meta分析模型)、参数优化、机器/深度学习、大尺度模型构建与模拟、论…

持PMP证书可以免考申请CSPM-2国标证书!

一提到项目管理的专业认证,大家首先想到的肯定是以PMP为核心的PMI体系认证。当然也有BSI和IPMP等其他体系认证,但都是从国外引进的专业认证,我国始终缺少符合中国特色项目管理环境下的项目管理专业认证体系。 如今,更符合中国国情…

单细胞|RNA-seq ATAC-seq 联合分析

引言 本文[1]将介绍如何利用Signac和Seurat这两个工具,对一个同时记录了DNA可接触性和基因表达的单细胞数据集进行综合分析。我们将以一个公开的10x Genomics Multiome数据集为例,该数据集针对的是人体的外周血单核细胞。 数据准备 library(Signac)libra…

八股文之JVM

目录 1.JVM内存划分 2.JVM类加载过程 3.JVM垃圾回收机制GC 3.1.判断谁是垃圾 3.2.如何释放对应的内存 1.JVM内存划分 在一个Java程序运行起来之后,jvm就会从操作系统中申请一块内存,然后就会将该内存划分成多个部分,用于不同的用途。 …

【拥抱鸿蒙】HarmonyOS NEXT实现双路预览并识别文字

我们在许多其他平台看到过OCR功能的应用,那么HarmonyOS在这方面的支持如何呢?我们如何能快速使用这一能力呢?使用这一能力需要注意的点有哪些呢?就让我们一起来探究吧~ 【开发环境】 版本规则号:HarmonyOS NEXT版本类…

闭包表(Closure Table)

设计血缘关系(data-lineage)时,想到要使用的表模型。 表设计 节点记录表 - node CREATE TABLE lineages_node (name varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 节点名称,id bigint(20) unsigned NOT NULL AUTO_INCREM…

python图像处理库-PIL(Pillow)

PIL库全称为Python Imaging Library,即Python图像处理库,是一个在Python中用于处理图像的非常流行的库。 一、PIL介绍 这个库提供了广泛的文件格式支持、高效的内部表示以及相当强大的图像处理功能。 核心图像库旨在快速访问存储在几种基本像素格式中的数…

C#特性-CallerMemberName、CallerFilePath和CallerLineNumber的介绍和应用

介绍 在csharp中,CallerMemberName, CallerFilePath, 和 CallerLineNumber 是编译时常量,它们是csharp 5.0引入的特性,用于提供有关调用堆栈的信息,通常用于日志记录和调试。这些特性可以自动填充方法的参数,无需显式…

基于SpringBoot校园食堂订餐管理系统

文章目录 系统运行图概要整体架构流程技术名词解释 系统运行图 概要 随着校园人口的增加和生活节奏的加快,校园食堂的订餐管理面临着诸多挑战,传统的人工点餐方式已经不能满足日益增长的需求和期望。因此,本论文旨在设计和实现一种基于Java的…

图解Attention学习笔记

教程是来自https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/ 图解Attention Attention出现的原因是:基于循环神经网络(RNN)一类的seq2seq模型,在处理长文本时遇到了挑战,而对长文本中…

IPD体系进阶:组织体系诊断7S模型

目录 1. IPD 变革说明 2. 麦肯锡 7S 模型 3. IPD 资源 1. IPD 变革说明 企业引入 IPD,最直接的原因在于: 要解决组织当下遇到的发展问题。 这个时候就离不开对自身的诊断。 这跟解决日常问题是一样的思路。 有这样一句爱因斯坦的名言&#xff0c…

垃圾回收管理系统设计

一、引言 随着城市化进程的加快,垃圾处理问题日益凸显。为了有效管理垃圾回收,提高资源利用效率,降低环境污染,本文设计了一套垃圾回收管理系统。该系统涵盖了数据收集与分析、智能监测与识别、资源调配与协调、用户参与与反馈、…

maven编译【-Dmaven.test.skip=true和-DskipTests=true的区别】

1、背景 我在执行maven编译时,遇到下面情况: 1、当执行命令为下面: mvn clean compile package install -Dmaven.wagon.http.ssl.insecuretrue -Dmaven.wagon.http.ssl.allowalltrue -Dmaven.wagon.http.ssl.ignore.validity.datestrue -Dra…

基于自编码器的心电图信号异常检测(Python)

使用的数据集来自PTB心电图数据库,包括14552个心电图记录,包括两类:正常心跳和异常心跳,采样频率为125Hz。 import numpy as np np.set_printoptions(suppressTrue) import pandas as pd import matplotlib.pyplot as plt import…

qss实现登录界面美化

qss实现登录界面美化 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 去掉头部this->setWindowFlag(Qt::FramelessWindowHint);// 去掉空白部分th…

批量修改文件后缀名

背景引言 bat 文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序…

鸿蒙 用tabs的 divider 属性 添加分割线,非常好用

divider10DividerStyle | null 用于设置区分TabBar和TabContent的分割线样式设置分割线样式,默认不显示分割线。 DividerStyle: 分割线的样式; null: 不显示分割线。 添加前: 添加后的效果:

JavaScript-事件监听及对象

添加事件监听 语法:对象名.addEventListener(事件类型,要执行的函数) 作用:当事件触发时,就调用这个函数 事件类型:比如用鼠标点击,或用滚轮滑动,鼠标经过这些 要执行的函数:要做的事 &l…

物联网主机E6000:智慧安防的核心动力

随着科技的不断进步,物联网(IoT)技术已经深入到我们生活的各个领域,尤其是在智慧安防领域,物联网技术的应用正变得越来越广泛。物联网主机E6000作为一款高性能的智能设备,其在智慧安防系统中扮演着至关重要…