Excel 宏 - 快速指南
Excel 宏 - 概述
Excel 宏是一个操作或一组操作,您可以根据需要随时记录、命名、保存和运行任意多次。创建宏时,您正在记录鼠标单击和击键。当您运行保存的宏时,记录的鼠标单击和击键将按照与记录相同的顺序执行。
宏可帮助您节省涉及需要经常执行的数据操作和数据报告的重复性任务的时间。
宏和VBA
您可以使用 Excel 命令或 Excel VBA 记录和运行宏。
VBA 代表 Visual Basic for Applications,是一种简单的编程语言,可通过 Excel Visual Basic 编辑器 (VBE) 访问,该编辑器可从功能区上的“开发人员”选项卡中访问。当您录制宏时,Excel 会生成 VBA 代码。如果您只是想录制宏并运行它,则无需学习Excel VBA。但是,如果要修改宏,则只能通过在Excel VBA编辑器中修改VBA代码来完成。
您将在“创建简单宏”一章中学习如何录制简单的宏并使用 Excel 命令运行它。您将在后面的章节中了解有关宏以及从 Excel VBA 编辑器创建和/或修改宏的更多信息。
个人宏观工作簿
宏可以保存在与录制它的位置相同的工作簿中。在这种情况下,您只能从该工作簿运行宏,因此您应该保持它打开。Excel 为您提供了另一种存储所有宏的方法。它是个人宏工作簿,您可以在其中保存宏,从而使您能够从任何工作簿运行这些宏。
您将在“将所有宏保存在单个工作簿中”一章中了解有关个人宏工作簿的信息。
宏观安全
宏将作为 VBA 代码存储在 Excel 中。与任何其他代码的情况一样,宏代码也容易受到打开工作簿时可能运行的恶意代码的影响。这对您的计算机构成威胁。Microsoft 提供了宏安全工具,可帮助您保护计算机免受此类宏病毒的侵害。
您将在“宏安全”一章中了解更多相关信息。
绝对引用和相对引用
录制宏时,您可以对单击的单元格使用绝对引用或相对引用。绝对引用使宏在录制宏的相同单元格中运行。另一方面,相对引用使宏在活动单元格中运行。
您将在章节中了解这些内容 - 对宏使用绝对引用和对宏使用相对引用。
VBA 中的宏代码
即使您不了解 Excel VBA,也可以从 Excel 记录和运行宏。但是,如果您必须修改录制的宏或通过编写 VBA 代码创建宏,您应该学习 Excel VBA。您可以参考本教程库中的Excel VBA教程
但是,您应该知道如何查看宏代码。您可以在“Excel VBA”一章中了解如何访问 Excel 中的 VBA 编辑器以及 VBA 编辑器的不同部分。
您可以学习如何在Excel VBA编辑器中查看宏代码,并可以在“了解宏代码”一章中了解宏代码。
将宏分配给对象
您可以将宏分配给对象,例如形状、图形或控件。然后,您可以通过单击该对象来运行宏。您将在“将宏分配给对象”一章中了解这一点。
运行宏
Excel 提供了多种运行宏的方法。您可以选择运行宏的方式。您将在“运行宏”一章中了解运行宏的这些不同的可能方法。
使用 VBA 编辑器创建宏
如果您决定编写宏代码,可以在“使用 VBA 编辑器创建宏”一章中学习。不过,前提是你应该具备 Excel VBA 知识。
编辑宏
您可以在 Excel VBA 编辑器中修改宏代码。如果您想要进行大量更改,您应该具备 Excel VBA 知识。但是,如果您只想对代码进行较小的更改,或者如果您想将 VBA 代码从录制的宏复制到另一个宏,您可以参考章节 - 编辑宏。
您可以重命名宏,甚至删除它。您也将在同一章中了解这一点。
用户表格
表格通常用于收集所需信息。这将是不言自明的,使任务变得简单。从 Excel VBA 编辑器创建的 Excel 用户表单具有相同的目的,提供熟悉的选项,如文本框、复选框、单选按钮、列表框、组合框、滚动条等作为控件。
您将在“用户表单”一章中学习如何创建用户表单以及如何使用不同的控件。
调试宏代码
有时,宏可能无法按预期运行。您可能已经创建了该宏,或者您可能正在使用某人提供给您的宏。您可以像调试任何其他代码一样调试宏代码,以发现缺陷并纠正它们。您将在“调试宏代码”一章中了解这一点。
配置宏以在打开工作簿时运行
您可以使宏在打开工作簿时自动运行。您可以通过创建 Auto_Run 宏或为工作簿打开事件编写 VBA 代码来完成此操作。您将在“配置宏在打开工作簿时运行”一章中了解这一点。
Excel 宏 - 创建
您可以使用 Excel 命令创建宏,方法是记录击键和鼠标单击,为宏命名并指定如何存储宏。如此记录的宏可以使用 Excel 命令运行。
假设您必须按以下格式重复收集某些结果 -
您可以使用宏来为您完成此操作,而不是每次都创建表。
录制宏
要录制宏,请执行以下操作 -
- 单击功能区上的“查看”选项卡。
- 单击宏组中的宏。
- 从下拉列表中选择录制宏。
将出现“录制宏”对话框。
在宏名称框中键入MyFirstMacro 。
在“说明”框中键入“简单宏” ,然后单击“确定”。
请记住,无论您执行什么击键和鼠标点击操作,现在都会被记录下来。
单击单元格 B2。
创建表。
单击工作表中的不同单元格。
单击功能区上的“查看”选项卡。
单击宏。
从下拉列表中选择停止录制。
您的宏录制已完成。
单击特定单元格的第一步很重要,因为它告诉宏必须开始放置记录的步骤的确切位置。录制完成后,您必须单击“停止录制”以避免录制不必要的步骤。
运行宏
您可以运行已录制的宏任意次数。要运行宏,请执行以下操作 -
- 单击新工作表。
注意活动单元格。在我们的例子中,它是A1。
单击功能区上的“查看”选项卡。
单击宏。
从下拉列表中选择查看宏。
出现宏对话框。
只有您录制的宏才会出现在宏列表中。
在宏对话框中单击宏名称 - MyFirstMacro。将显示您在录制宏时输入的描述。宏描述允许您确定录制宏的目的。
单击运行按钮。您在录制宏时创建的同一个表格将在一瞬间出现。
您已经发现了 Excel 为您节省日常任务时间的魔杖。您将观察到以下情况 -
尽管运行宏之前的活动单元格是 A1,但正如您所记录的那样,表格被放置在单元格 B2 中。
此外,活动单元格变为 E2,因为您在停止记录之前单击了该单元格。
在运行宏之前,您可以在具有不同活动单元格的多个工作表中运行宏,并观察与上面给出的相同的条件。只需记下这一点,您将在本教程后面了解为什么会发生这种情况。
您还可以进行宏录制,将录制的步骤放入活动单元格中。随着本教程的进展,您将了解如何执行此操作。
存储宏
您可能想知道如何保存创建的宏。在这种情况下,你需要知道 -
- 存储宏
- 保存启用宏的文件
创建宏时,您可以选择存储该特定宏的位置。您可以在“录制宏”对话框中执行此操作。
单击框 -将宏存储在. 以下三个选项可用 -
- 这本练习册。
- 新作业簿。
- 个人宏观工作簿
本练习册
这是默认选项。该宏将存储在您创建宏的当前工作簿中。
新工作簿
此选项虽然可用,但不推荐。您将要求 Excel 将宏存储在不同的新工作簿中,但大多数情况下这是没有必要的。
个人宏观工作簿
如果您创建多个在工作簿中使用的宏,个人宏工作簿将为您提供将所有宏存储在一个位置的工具。您将在下一章中了解有关此选项的更多信息。
保存启用宏的文件
如果您选择“此工作簿”作为存储宏的选项,则需要将工作簿与宏一起保存。
尝试保存工作簿。默认情况下,您会要求 Excel 将工作簿另存为 .xls 文件。Excel 显示一条消息,指出 Excel 功能 VB 项目无法保存在无宏工作簿中,如下所示。
注意- 如果您单击“是”,Excel 会将您的工作簿保存为无宏的 .xls 文件,并且您使用“此工作簿”选项存储的宏将不会被保存。为了避免这种情况,Excel 为您提供了一个选项,可将工作簿另存为启用宏的工作簿,其扩展名为 .xlsm。
- 在警告消息框中单击“否”。
- 在“保存类型”中选择“Excel 启用宏的工作簿 (*.xlsm)”。
- 单击“保存”。
您将在本教程的后续章节中了解有关这些的更多信息。
Excel 宏 - 单个工作簿中的宏
Excel 为您提供了将所有宏存储在单个工作簿中的功能。该工作簿称为个人宏工作簿 - Personal.xlsb。它是存储在计算机上的隐藏工作簿,每次打开 Excel 时都会打开它。这使您能够从任何工作簿运行宏。每台计算机将有一个个人宏工作簿,并且您不能在计算机之间共享它。您可以从计算机上的任何工作簿查看和运行个人宏工作簿中的宏。
在个人宏工作簿中保存宏
您可以在录制宏时选择个人宏工作簿作为存储选项,将宏保存在个人宏工作簿中。
从“将宏存储在”类别下的下拉列表中选择“个人宏工作簿” 。
- 录制您的第二个宏。
- 在“录制宏”对话框中提供宏详细信息,如下所示。
- 单击“确定”。
您的录音开始。创建一个表,如下所示。
停止录音。
单击功能区上的“查看”选项卡。
单击宏。
从下拉列表中选择查看宏。出现宏对话框。
宏名称带有前缀 PERSONAL.XLSB!表明该宏位于个人宏工作簿中。
保存您的工作簿。由于该宏不在您的工作簿中,因此它将保存为 .xls 文件并关闭 Excel。
您将收到以下有关保存对个人宏工作簿所做更改的消息 -
单击“保存”按钮。您的宏保存在计算机上的Personal.xlsb文件中。
隐藏/取消隐藏个人宏工作簿
默认情况下,个人宏工作簿将被隐藏。当您启动 Excel 时,会加载个人宏工作簿,但您看不到它,因为它是隐藏的。您可以按如下方式取消隐藏它 -
单击功能区上的“查看”选项卡。
单击“窗口”组中的“取消隐藏”。
将出现“取消隐藏”对话框。
PERSONAL.XLSB 将出现在“取消隐藏工作簿”框中,然后单击“确定”。
现在您可以查看保存在个人宏工作簿中的宏。
要隐藏个人宏工作簿,请执行以下操作 -
- 单击个人宏工作簿。
- 单击功能区上的“查看”选项卡。
- 单击功能区上的隐藏。
运行个人宏工作簿中保存的宏
您可以从任何工作簿运行保存在个人宏工作簿中的宏。要运行宏,个人宏工作簿是否隐藏没有任何区别。
- 单击查看宏。
- 从宏列表中选择宏名称。
- 单击运行按钮。宏将运行。
在个人宏工作簿中添加/删除宏
正如您之前所见,您可以在录制宏时选择将宏存储在选项中,从而在个人宏工作簿中添加更多宏。
您可以删除个人宏工作簿中的宏,如下所示 -
- 确保个人宏工作簿未隐藏。
- 单击“查看宏”对话框中的宏名称。
- 单击删除按钮。
如果个人宏工作簿被隐藏,您将收到一条消息“无法编辑隐藏工作簿上的宏”。
取消隐藏个人宏工作簿并删除选定的宏。
该宏不会出现在宏列表中。但是,当您创建新宏并将其保存在个人工作簿中或删除其中包含的任何宏时,系统将提示您保存个人工作簿,就像您第一次保存它一样。
Excel 宏 - 安全性
您在 Excel 中创建的宏将使用编程语言 VBA(Visual Basic for Applications)编写。您将在后面的章节中了解 Excel 宏代码。如您所知,当存在可执行代码时,就会存在病毒威胁。宏也容易受到病毒的影响。
什么是宏病毒?
编写宏的 Excel VBA 可以访问大多数 Windows 系统调用,并在打开工作簿时自动执行。因此,存在以宏形式编写的病毒存在的潜在威胁,该病毒隐藏在打开工作簿时执行的 Excel 中。因此,Excel 宏在很多方面对您的计算机都非常危险。但是,Microsoft 已采取适当措施来保护工作簿免受宏病毒的侵害。
Microsoft 引入了宏安全性,以便您可以识别哪些宏可以信任,哪些宏不能信任。
启用宏的 Excel 工作簿
最重要的 Excel 宏安全功能是文件扩展名。
默认情况下,Excel 工作簿将以 .xlsx 文件扩展名保存。您始终可以信任具有 .xlsx 文件扩展名的工作簿,因为它们无法存储宏并且不会带来任何威胁。
包含宏的 Excel 工作簿以 .xlsm 文件扩展名保存。它们被称为启用宏的 Excel 工作簿。在打开此类工作簿之前,应确保它们包含的宏不是恶意的。为此,您必须确保可以信任此类工作簿的来源。
信任启用宏的工作簿的方法
Excel 提供了三种信任启用宏的工作簿的方法。
将启用宏的工作簿放置在受信任的文件夹中
检查宏是否经过数字签名
在打开启用宏的工作簿之前启用安全警报消息
将启用宏的工作簿放置在受信任的文件夹中
这是管理宏安全性的最简单、最好的方法。Excel 允许您将文件夹指定为受信任位置。将所有启用宏的工作簿放入该受信任文件夹中。您可以打开保存到此位置的启用宏的工作簿,而不会出现警告或限制。
检查宏是否经过数字签名
数字签名确认作者的身份。您可以将 Excel 配置为运行来自受信任人员的数字签名宏,而不会出现警告或限制。如果自作者签名后发生更改,Excel 还会向收件人发出警告。
在打开启用宏的工作簿之前启用安全警报消息
当您打开工作簿时,Excel 会警告您该工作簿包含宏,并询问您是否要启用它们。如果工作簿的来源可靠,您可以单击“启用内容”按钮。
您可以在“Excel 选项”的“信任中心”中设置这三个选项中的任何一个。
如果您在组织中工作,系统管理员可能已更改默认设置以防止任何人更改设置。Microsoft 建议您不要更改信任中心中的安全设置,因为这可能会导致您的计算机或网络上的数据丢失、数据被盗或安全受损。
但是,您可以在以下部分中了解宏安全设置并检查是否需要更改它们。您必须根据上下文和您对文件来源的了解,凭自己的直觉来决定这些选项中的任何一个。
信任中心的宏安全设置
宏设置位于“Excel 选项”的“信任中心”中。要访问信任中心,请执行以下操作 -
单击功能区上的“文件”选项卡。
单击选项。将出现“Excel 选项”对话框。
单击左侧窗格中的信任中心。
单击Microsoft Excel 信任中心下的信任中心设置按钮。
将出现“信任中心”对话框。
您将在左侧窗格的 Excel 信任中心看到各种可用选项。您将在以下部分中了解与 Excel 宏相关的选项。
宏设置
宏设置位于信任中心。
在宏设置下,有四个选项可用。
禁用所有宏而不通知- 如果选择此选项,则禁用宏和有关宏的安全警报。
禁用所有宏并发出通知- 宏被禁用,但如果存在宏,则会出现安全警报。您可以根据具体情况启用宏。
禁用除数字签名宏之外的所有宏- 宏被禁用,但如果存在宏,则会出现安全警报。但是,如果宏由受信任的发布者进行数字签名,则当您信任该发布者时,该宏就会运行。如果您不信任发布者,系统将通知您启用已签名的宏并信任发布者。
启用所有宏(不推荐,容易受到宏病毒的影响) - 如果选择此选项,则所有宏都会运行。此设置使您的计算机容易受到潜在恶意代码的攻击。
您在开发人员宏设置下有一个带有复选框的附加安全选项。
信任对 VBA 项目对象模型的访问。
此选项允许从自动化客户端以编程方式访问 Visual Basic for Applications (VBA) 对象模型。
此安全选项适用于为自动化 Office 程序并操作 VBA 环境和对象模型而编写的代码。
它是针对每个用户和每个应用程序的设置,默认情况下拒绝访问,从而阻止未经授权的程序构建有害的自我复制代码。
为了使自动化客户端访问 VBA 对象模型,运行代码的用户必须授予访问权限。要打开访问权限,请选中该复选框。
定义可信位置
如果您认为启用宏的工作簿来自可靠的来源,最好将该文件移动到 Excel 标识的受信任位置,而不是将默认信任中心设置更改为不太安全的宏安全设置。
您可以在信任中心找到受信任的文件夹设置。
单击“信任中心”对话框中的“受信任位置”。Microsoft Office 设置的受信任位置显示在右侧。
您可以添加新位置、删除现有位置以及修改现有位置。Microsoft Office 将确定的受信任位置视为可打开文件的可靠位置。但是,如果您添加或修改位置,请确保该位置是安全的。
您还可以找到 Office 不推荐的选项,例如互联网上的位置。
来自可靠来源的数字签名宏
Microsoft 提供了一个选项来容纳数字签名的宏。但是,即使宏经过数字签名,您也需要确保它来自受信任的发布者。
您将在信任中心找到受信任的发布者。
单击“信任中心”对话框中的“受信任的发布者” 。右侧显示证书列表,其中包含详细信息 - 颁发给、颁发者和到期日期。
选择一个证书并单击“查看”。
显示证书信息。
正如您在本章前面所了解到的,您可以设置一个选项,仅在您信任发布者的情况下运行经过数字签名的宏。如果您不信任发布者,系统将通知您启用签名的宏并信任发布者。
使用警告消息
当您打开的文件中存在宏时,消息栏会显示安全警报。带有盾牌图标的黄色消息栏会提醒您宏已被禁用。
如果您知道一个或多个宏来自可靠的来源,则可以单击消息栏上的“启用内容”按钮来启用宏。
如果您不需要安全警报,可以禁用消息栏选项。另一方面,您可以启用消息栏选项以提高安全性。
启用/禁用消息栏上的安全警报
您可以使用消息栏启用/禁用安全警报,如下所示 -
- 单击功能区上的“文件”选项卡。
- 单击选项。将出现“Excel 选项”对话框。
- 单击信任中心。
- 单击信任中心设置按钮。
- 单击消息栏。
将出现所有 Office 应用程序的消息栏设置。
-显示消息栏下有两个选项。
选项 1 - 当宏等活动内容被阻止时,在所有应用程序中显示消息栏。
这是默认选项。当潜在的不安全内容被禁用时,会出现消息栏。
如果您在信任中心的宏设置中选择了 -禁用所有宏而不通知,则不会选择此选项,并且不会出现消息栏。
选项 2 - 绝不显示有关被阻止内容的信息。
如果选择此选项,它将禁用消息栏,并且不会显示有关安全问题的警报,无论信任中心中的任何安全设置如何。
Excel 宏 - 绝对引用
Excel 宏可以通过绝对引用或相对引用来记录。使用绝对引用记录的宏将记录的步骤精确地放置在记录它的单元格中,而不考虑活动单元格。另一方面,使用相对引用记录的宏可以在工作表的不同部分执行记录的任务。
您将在本章中了解宏的绝对引用。您将在下一章中了解相关参考。
假设您必须在每天结束时以以下格式提交有关团队工作的报告 -
现在,报告应放置在单元格 B2 中,并且应采用给定的格式。
填写的报告样本如下所示 -
除了以下单元格中的数据之外,您为项目生成的每个报告的信息都是不变的。
- C3 – 报告日期。
- C13 – 今天完成的任务数量。
- C14 – 已完成的任务总数。
- C15 – 工作完成百分比。
其中,在 C3(日期报告)中,您可以放置 Excel 函数 = TODAY (),无需您的干预即可放置报告日期。此外,在单元格 C15 中,您可以使用公式 C14/C12 并将单元格 C15 的格式设置为百分比,以便 Excel 为您计算工作完成百分比。
这样您就只剩下两个单元格 - C13 和 C14 需要您每天填写。因此,每次创建报告时,最好能获得其余单元格的信息。这可以为您节省时间,您只需几分钟即可完成报告的日常活动。
现在,假设您必须为三个项目发送此类报告。您可以想象您可以节省多少时间并承担当天更具挑战性的工作,当然还能获得管理层的赞誉。
您可以通过为每个项目记录一个宏并每天运行它们来实现这一点,只需几分钟即可生成所需的报告。但是,每次运行宏时,无论活动单元格如何,报告都应如上所示显示在工作表上。为此,您必须使用绝对引用。
确保绝对引用
要使用绝对引用记录宏,您必须确保从步骤必须开始的单元格开始记录宏。这意味着,在上一节给出的示例的情况下,您需要执行以下操作 -
- 开始录制宏。
- 创建一个新工作表。
- 单击新工作表中除 B2 之外的任何单元格。
- 单击单元格 B2。
- 继续录制宏。
这将为每个新报告创建一个新工作表,并在每次运行宏时将报告格式放置在单元格 B2 中。
注意- 上面给出的前三个步骤是必不可少的。
如果您不创建新工作表,则当您运行宏时,它会将您在同一工作表上记录的所有内容放置在同一位置。这不是你想要的。您需要将每个报告放在不同的工作表上。
如果您在记录开始时没有单击其他单元格,即使活动单元格是 B2,Excel 也会将记录的步骤放入活动单元格中。当您运行宏时,它将根据活动单元格将记录的报告格式放置在工作表的任何部分。通过明确单击 B2 以外的单元格,然后单击单元格 B2,您可以告诉录音机始终将宏步骤放置在单元格 B2 中。
录制宏
您可以使用功能区“查看”选项卡→“宏”下的“录制宏”命令开始录制宏。您还可以单击Excel 任务栏左侧的“开始录制宏”按钮。
开始录制宏。将出现“录制宏”对话框。
提供一个有意义的名称以将宏标识为特定项目的报告。
在“将宏存储在”下选择“此工作簿” ,因为您将仅从该特定工作簿生成报告。
为您的宏提供描述,然后单击“确定”。
您的宏开始录制。
创建一个新工作表。这可确保您的新报告将位于新工作表上。
单击新工作表中除 B2 之外的任何单元格。
单击单元格 B2。这可确保宏始终将您录制的步骤放置在 B2 中。
创建报告的格式。
填写项目报告的静态信息。
将 = TODAY () 放入 C3 中,将 = C14/C12 放入单元格 C15 中。
使用日期设置单元格格式。
停止录制宏。
您可以使用“查看”选项卡→“宏”下功能区上的“停止录制”命令或单击 Excel 任务栏左侧的“停止录制宏”按钮来停止录制宏。
您的项目报告宏已准备就绪。将工作簿另存为启用宏的工作簿(扩展名为 .xlsm)。
运行宏
只需运行宏,您就可以在几秒钟内生成任意数量的报告。
- 单击功能区上的“查看”按钮。
- 单击宏。
- 从下拉列表中选择查看宏。出现宏对话框。
- 单击宏 Report_ProjectXYZ。
- 单击运行按钮。
将在您的工作簿中创建一个新工作表,并在单元格 B2 中创建报告模板。
Excel 宏 - 相对引用
相对参考宏记录相对于活动单元格的偏移量。如果您必须在工作表中的不同位置重复这些步骤,则此类宏将非常有用。
假设您需要分析从 280 个选区收集的选民数据。对于每个选区,收集以下详细信息 -
- 选区名称。
- 选区的总人口。
- 该选区的选民人数。
- 男性选民人数,以及
- 女性选民人数。
数据在工作表中提供给您,如下所示。
无法分析上述格式的数据。因此,将数据排列在表中,如下所示。
如果您尝试按上述格式排列给定数据 -
整理280个选区的数据需要花费大量时间
它可能容易出错
这变成了一项平凡的任务,不允许你专注于技术问题
解决方案是录制一个宏,这样您就可以在不超过几秒钟的时间内完成任务。该宏需要使用相对引用,因为您将在排列数据时向下移动行。
使用相对引用
为了让宏记录器知道它必须使用相对引用,请执行以下操作 -
单击功能区上的“查看”选项卡。
单击宏。
单击“使用相对引用”。
准备数据格式
排列上述给定数据的第一步是在带有标题的表中定义数据格式。
创建标题行,如下所示。
录制宏
记录宏如下 -
单击“录制宏”。
为宏指定一个有意义的名称,例如 DataArrange。
在单元格 B4 中输入 = row ()- 3 。这是因为 S. 号是当前行号 – 其上方的 3 行。
剪切单元格 B5、B6、B7、B8 和 B9,并将其分别粘贴到单元格 C4 至 C8 中。
现在单击单元格 B5。您的表格如下所示。
第一个数据集排列在表格的第一行。删除 B6 – B11 行,然后单击单元格 B5。
您可以看到活动单元格是 B5,下一个数据集将放置在这里。
停止录制宏。用于排列数据的宏已准备就绪。
运行宏
您需要重复运行该宏来完成下表中的数据排列。
活动单元格是 B5。运行宏。第二个数据集将排列在表格的第二行中,活动单元格将为 B6。
再次运行宏。第三个数据集将排列在表格的第三行,活动单元格将变为 B7。
每次运行宏时,活动单元格都会前进到下一行,以便于在适当的位置重复记录的步骤。这是可能的,因为宏中的相对引用。
运行宏,直到所有 280 个数据集排列成表中的 280 行。此过程只需几秒钟,并且由于步骤是自动化的,因此整个练习不会出现错误。
Excel 宏 - VBA
Excel 将宏存储为 Excel VBA(Visual Basic for Applications)代码。录制宏后,您可以查看生成的代码、修改它、复制其中的一部分等。如果您熟悉 VBA 编程,您甚至可以自己编写宏代码。
您将在“使用 VBA 编辑器创建宏”一章中学习如何通过编写 VBA 代码来创建宏。您将在“编辑宏”一章中学习如何通过编辑 VBA 代码来修改宏。您将在本章中学习 Excel VBA 功能。
功能区上的“开发人员”选项卡
您可以从功能区上的“开发人员”选项卡访问 VBA 中的宏代码。
如果您在功能区上找不到“开发人员”选项卡,则需要按如下方式添加它 -
右键单击功能区。
从下拉列表中选择自定义功能区。
将出现“ Excel选项”对话框。
从自定义功能区下拉列表中选择主选项卡。
选中“主选项卡”列表中的“开发人员”框,然后单击“确定”。出现开发人员选项卡。
宏的开发者命令
您需要了解开发人员选项卡下的宏命令。
单击功能区上的“开发人员”选项卡。代码组中提供以下命令 -
- 视觉基础
- 宏
- 录制宏
- 使用相对引用
- 宏观安全
Visual Basic 命令用于在 Excel 中打开 VBA 编辑器,Macros 命令用于查看、运行和删除宏。
在前面的章节中您已经学习了除 VBA 编辑器之外的命令。
VBA编辑器
VBA 编辑器或 VBE 是 Excel 中 VBA 的开发平台。
打开您在本教程的“创建简单宏”一章前面保存的工作簿 – MyFirstMacro.xlsm。
您可以通过以下两种方式之一打开 VBE -
选项 1 - 单击功能区“开发人员”选项卡下“代码”组中的“Visual Basic”。
选项 2 - 单击“查看”选项卡→“宏”→“查看宏”时出现的“宏”对话框中的“编辑”
VBE 将出现在新窗口中。
启用 Excel 宏的工作簿名称显示时带有前缀 – Microsoft Visual Basic for Applications。
您将在 VBE 中找到以下内容 -
- 项目资源管理器。
- 特性。
- 带有代码的模块窗口。
项目浏览器
项目资源管理器是您找到 VBA 项目名称的地方。在项目下,您将找到工作表名称和模块名称。当您单击模块名称时,相应的代码会出现在窗口的右侧。
属性窗口
属性是 VBA 对象的参数。当您有一个对象(例如命令按钮)时,其属性将显示在“属性”窗口中。
带有代码的模块窗口
宏的代码将存储在 VBA 的模块中。当您选择一个宏并单击“编辑”时,该宏的代码将出现在相应的模块窗口中。
Excel 宏 - 理解代码
当您录制宏时,Excel 将其存储为 VBA 代码。您可以在 VBA 编辑器中查看此代码。如果您对Excel VBA有丰富的了解,您可以理解代码并修改它。您可以参考本教程库中的 Excel VBA 教程来掌握该语言。
但是,您仍然可以在 Excel VBA 编辑器中查看宏代码,并将其与您在宏中记录的步骤进行匹配。您将学习如何查看代码并理解您在本教程中创建的第一个宏 - MyFirstMacro。
在 VBA 编辑器中查看宏代码
要查看宏代码,请执行以下操作 -
- 打开存储宏的工作簿。
- 单击功能区上的“查看”选项卡。
- 单击宏。
- 从下拉列表中选择查看宏。
出现宏对话框。
- 单击宏列表中的 MyFirstMacro。
- 单击编辑按钮。
VBA 编辑器打开并显示宏 MyFirstMacro 的代码。
将记录的操作理解为代码的一部分
您可以浏览宏代码并将它们映射到您记录的步骤。
- 开始阅读代码。
- 将代码映射到记录的步骤。
向下滚动代码以查看更多代码。或者,您可以放大代码窗口。
观察代码很简单。如果您学习了 Excel VBA,则可以通过在 VBA 编辑器中编写代码来创建宏。
您将在“使用 VBA 编辑器创建宏”一章中学习如何编写 VBA 代码来创建宏。
Excel 宏 - 将宏分配给对象
假设您创建了一个需要执行多次的宏。例如,您为绝对引用和相对引用创建的宏。然后,如果您可以通过单击鼠标来运行宏,那对您来说会很容易。您可以通过将宏分配给对象(例如形状、图形或控件)来实现此目的。
在本章中,您将学习如何在工作簿中包含对象并为其分配宏。
回想一下您使用相对引用创建的宏。该宏将一列中给出的数据排列成表格,以便于数据分析。
将宏指定给形状
您可以在工作表中插入一个形状,该形状采用有意义的形式,并带有不言自明的文本,单击该形状时会运行分配给它的宏。
单击功能区上的插入选项卡。
单击插图组中的形状。
选择下拉列表中显示的任何现成形状。例如,流程图形状 - 准备,就像您正在准备数据的过程中一样。
绘制形状并设置格式。
右键单击形状并从下拉列表中选择编辑文本。
在形状内键入文本 - 运行宏。
设置文本格式。
- 右键单击形状。
- 从下拉列表中选择分配宏。
将出现分配宏对话框。单击宏名称,即“RelativeMacro”,然后单击“确定”。
宏被分配给形状。
单击必须运行宏(如 B4)的单元格。
将光标(指针)移动到形状上。光标(指针)变为手指。
现在单击形状。宏将运行。只需重复单击鼠标多次运行宏,您就可以在几秒钟内完成将数据排列到表中的任务。
将宏分配给图形
您可以在工作表中插入图形并为其指定宏。可以选择图形来可视化您的宏。例如,您可以使用表格图形来表示宏将数据排列到表格中。
- 单击功能区上的插入选项卡。
- 单击插图组中的图片。
- 选择包含图形的文件。
其余步骤与上一节中给出的形状相同。
将宏分配给控件
插入 VBA 控件并为其分配宏使您的工作看起来很专业。您可以从功能区上的“开发人员”选项卡插入 VBA 控件。
单击功能区上的“开发人员”选项卡。
单击“控件”组中的“插入” 。
从下拉列表中选择“表单控件”下的“按钮”图标,如下面的屏幕截图所示 -
单击工作表上要插入 Button 控件的单元格。将出现分配宏对话框。
单击宏名称,然后单击“确定”。
将插入带有指定宏的控制按钮。
- 右键单击按钮。
- 单击编辑文本。
- 类型 – 运行宏。
- 设置文本格式和调整大小按钮。
您只需重复单击按钮即可运行宏任意次。
使用表单控件是与用户交互的一种简单有效的方式。您将在“与用户交互”一章中了解更多相关信息。
Excel 宏 - 运行宏
在工作簿中执行宏的方法有多种。该宏将保存在启用宏的工作簿中或保存在您可以从任何工作簿访问的个人宏工作簿中,正如您之前了解到的那样。
您可以通过以下方式运行宏 -
- 从“视图”选项卡运行宏
- 按 Ctrl 加快捷键来运行宏
- 通过单击快速访问工具栏上的按钮来运行宏
- 通过单击功能区上自定义组中的按钮来运行宏
- 通过单击图形对象来运行宏
- 从“开发人员”选项卡运行宏
- 从 VBA 编辑器运行宏
从“视图”选项卡运行宏
您已经学会了从功能区上的“视图”选项卡运行宏。快速回顾一下 -
- 单击功能区上的“查看”选项卡。
- 单击宏。
- 从下拉列表中选择查看宏。
出现宏对话框。
- 单击宏名称。
- 单击运行按钮。
使用快捷键运行宏
您可以为宏指定快捷键(Ctrl + 键)。您可以在“创建宏”对话框中录制宏时执行此操作。否则,您可以稍后将其添加到“宏选项”对话框中。
录制宏时添加快捷键
- 单击“查看”选项卡。
- 单击宏。
- 从下拉列表中选择录制宏。
将出现“创建宏”对话框。
- 输入宏名称
- 在快捷键下 Ctrl + 旁边的框中键入一个字母,例如 q。
在宏选项中添加快捷键
- 单击“查看”选项卡。
- 单击宏。
- 从下拉列表中选择查看宏。
出现宏对话框。
- 选择宏名称。
- 单击选项按钮。
将出现“宏选项”对话框。在快捷键下 Ctrl + 旁边的框中键入一个字母,例如 q。单击“确定”。
要使用快捷键运行宏,请同时按 Ctrl 键和 q 键。宏将运行。
注意- 您可以使用任何小写或大写字母作为宏的快捷键。如果您使用作为 Excel 快捷键的任何 Ctrl + 字母组合,您将覆盖它。示例包括 Ctrl+C、Ctrl+V、Ctrl+X 等。因此,在选择字母时请使用您的管辖范围。
通过快速访问工具栏运行宏
您可以将宏按钮添加到快速访问工具栏并通过单击它来运行宏。当您将宏存储在个人宏工作簿中时,此选项非常有用。添加的按钮将出现在您打开的任何工作簿的快速访问工具栏上,从而使您可以轻松运行宏。
假设您的个人宏工作簿中有一个名为 MyMacro 的宏。
要将宏按钮添加到快速访问工具栏,请执行以下操作 -
右键单击快速访问工具栏。
从下拉列表中选择自定义快速访问工具栏。
将出现“Excel 选项”对话框。从类别下的下拉列表中选择宏 -从以下位置选择命令。
宏列表出现在宏下。
- 单击 PERSONAL.XLSB!MyMacro。
- 单击添加按钮。
宏名称显示在右侧,并带有宏按钮图像。
要更改宏按钮图像,请按以下步骤操作 -
- 单击右侧框中的宏名称。
- 单击修改按钮。
将出现“修改按钮”对话框。选择一个符号将其设置为按钮的图标。
将指针放在快速访问工具栏上的按钮图像上时出现的显示名称修改为有意义的名称,例如本例中的 Run MyMacro。单击“确定”。
右窗格中的宏名称和图标符号发生变化。单击“确定”。
宏按钮出现在快速访问工具栏上,当您将指针放在该按钮上时,宏显示名称也会出现。
要运行宏,只需单击快速访问工具栏上的宏按钮即可。
在自定义组中运行宏
您可以在功能区上添加自定义组和自定义按钮,并将宏分配给该按钮。
- 右键单击功能区。
- 从下拉列表中选择自定义功能区。
将出现“ Excel选项”对话框。
- 选择“自定义功能区”下的“主选项卡”。
- 单击“新选项卡”。
新选项卡(自定义)出现在主选项卡列表中。
- 单击新选项卡(自定义)。
- 单击“新建组”按钮。
新组(自定义)出现在新选项卡(自定义)下。
- 单击新选项卡(自定义)。
- 单击重命名按钮。
将出现“重命名”对话框。输入功能区上主选项卡中显示的自定义选项卡的名称,例如“我的宏”,然后单击“确定”。
注意- 功能区上的所有主要选项卡均为大写字母。您可以自行决定使用大写或小写字母。我选择了小写字母和单词大写,以便它在标准选项卡中脱颖而出。
新选项卡名称更改为“我的宏(自定义)”。
- 单击新建组(自定义)。
- 单击重命名按钮。
将出现“重命名”对话框。在“显示名称”对话框中键入组名称,然后单击“确定”。
新组名称更改为个人宏(自定义)。
单击左侧窗格中的“从以下位置选择命令”下的“宏” 。
- 从宏列表中选择您的宏名称,例如 – MyFirstMacro。
- 单击添加按钮。
该宏将添加到“个人宏(自定义)”组下。
- 单击列表中的我的宏(自定义)。
- 单击箭头可向上或向下移动选项卡。
主选项卡列表中选项卡的位置决定了它将放置在功能区上的位置。单击“确定”。
您的自定义选项卡 - 我的宏出现在功能区上。
单击选项卡 - 我的宏。个人宏组出现在功能区上。MyFirstMacro 显示在“个人宏”组中。要运行宏,只需单击“个人宏”组中的“MyFirstMacro”即可。
通过单击对象来运行宏
您可以在工作表中插入形状、图形或 VBA 控件等对象,并为其指定宏。要运行宏,只需单击该对象即可。
有关使用对象运行宏的详细信息,请参阅章节 - 将宏分配给对象。
从“开发人员”选项卡运行宏
您可以从“开发人员”选项卡运行宏。
- 单击功能区上的“开发人员”选项卡。
- 单击宏。
出现宏对话框。单击宏名称,然后单击运行。
从 VBA 编辑器运行宏
您可以从 VBA 编辑器运行宏,如下所示 -
- 单击功能区上的“运行”选项卡。
- 从下拉列表中选择运行子/用户窗体。
使用 VBA 编辑器创建宏
您可以通过在 VBA 编辑器中编写代码来创建宏。在本章中,您将了解在何处以及如何编写宏代码。
VBA 对象和模块
在开始编写宏代码之前,请先了解 VBA 对象和模块。
- 使用第一个宏打开启用宏的工作簿。
- 单击功能区上的“开发人员”选项卡。
- 单击“代码”组中的“Visual Basic”。
VBA 编辑器窗口打开。
您将在“项目资源管理器”窗口中观察到以下内容 -
您启用宏的工作簿 – MyFirstMacro.xlsm 显示为 VBA 项目。
所有工作表和工作簿在项目下显示为 Microsoft Excel 对象。
Module1 显示在模块下。您的宏代码位于此处。
单击模块 1。
单击功能区上的“查看”选项卡。
从下拉列表中选择代码。
将出现您的宏代码。
通过编码创建宏
接下来,在同一工作簿中创建第二个宏 - 这次是通过编写 VBA 代码。
您可以分两步完成此操作 -
插入命令按钮。
编写代码,说明单击命令按钮时要执行的操作。
插入命令按钮
创建一个新工作表。
单击新工作表。
单击功能区上的开发者按钮。
单击“控件”组中的“插入”。
从“表单控件”中选择按钮图标。
- 在工作表中单击要放置命令按钮的位置。
- 将出现分配宏对话框。
Visual Basic 编辑器出现。
您将观察到以下情况 -
- 新模块 – Module2 已插入到 Project Explorer 中。
- 出现标题为 Module2(代码)的代码窗口。
- 在 Module2 代码中插入子过程 Button1_Click ()。
宏编码
您的编码工作由 VBA 编辑器本身完成了一半。
例如,输入 MsgBox “祝您好运!” 在子过程Button1_Click()中。单击命令按钮时,将显示包含给定字符串的消息框。
就是这样!您的宏代码已准备好运行。如您所知,VBA 代码不需要编译,因为它是通过解释器运行的。
从 VBA 编辑器运行宏
您可以从 VBA 编辑器本身测试宏代码。
单击功能区上的“运行”选项卡。
从下拉列表中选择运行子/用户窗体。包含您键入的字符串的消息框将出现在工作表中。
您可以看到该按钮已被选中。单击消息框中的“确定”。您将返回到 VBA 编辑器。
从工作表运行宏
您可以从工作表中运行任意次编码的宏。
- 单击工作表上的某处。
- 单击按钮。消息框出现在工作表上。
您已通过编写 VBA 代码创建了宏。正如您所观察到的,VBA 编码很简单。
Excel 宏 - 编辑
在上一章中您已经学习了如何在 VBA 编辑器中编写宏代码。您可以编辑宏代码、重命名宏和删除宏。
如果您掌握了 Excel VBA,那么编写代码或修改宏代码就是一项简单的任务。您可以根据需要编辑宏代码。如果您只想对宏代码进行一些简单的更改,您甚至可以将宏代码从一处复制到另一处。
复制宏代码
您已在启用宏的工作簿 MyFirstMacro.xlsm 中创建了两个宏 – MyFirstMacro 和 Button1_Click。您已通过记录步骤创建了第一个宏,并通过编写代码创建了第二个宏。您可以将代码从第一个宏复制到第二个宏中。
打开工作簿 MyFirstMacro.xlsm。
单击功能区上的“开发人员”选项卡。
单击“Visual Basic”。Visual Basic 编辑器打开。
打开 Module1(MyFirstMacro 宏代码)和 Module2(Button1_Click () 宏代码)的代码。
单击功能区上的“窗口”选项卡。
从下拉列表中选择水平平铺。
您可以在平铺窗口中查看两个宏的代码。
复制 Module2 代码中的 MsgBox 行。
将其粘贴到该行上方。
将字符串修改为 -
MsgBox“世界你好!”
从 Module1 复制以下代码。
将其粘贴到两行 MsgBox 代码之间的 Module2 代码中。
单击“保存”图标保存代码。
单击 Excel 工作表中的按钮。将出现一个消息框,其中包含消息 - Hello World!单击“确定”。
将出现表格数据(根据您复制的代码),并出现消息框,其中包含消息 - 祝您一切顺利!
只需几个步骤即可修改代码。对于初学者来说,这是最简单的任务。
重命名宏
假设您想要从除具有命令按钮的工作表之外的任何工作表运行编辑后的宏。您可以通过重命名宏来执行此操作,而无需单击按钮。
- 单击功能区上的“查看”选项卡。
- 单击宏。
- 从下拉列表中选择查看宏。
出现宏对话框。
- 单击宏名称 – Button1_Click。
- 单击编辑按钮。
宏代码出现在 VBA 编辑器中。
将子行中显示的名称从 Button1_Click 更改为 RenamedMacro。保留 Sub 和括号不变。
打开宏对话框。宏名称将在您重命名时显示。
- 单击重命名宏。
- 单击运行按钮。宏运行。现在不需要单击按钮。
删除宏
您可以删除已录制或编码的宏。
- 打开宏对话框。
- 单击宏名称。
- 单击删除按钮。
出现删除确认消息。