如何在Excel中录制宏 - 逐步指南

即使您是Excel VBA世界的一个完全的新手,您也可以轻松地记录一个宏并自动完成一些工作。

在此详细指南中,我将介绍您需要知道的所有内容,以便在Excel中录制和使用宏开始。

如果你有兴趣学习VBA的简单方法,看看我的在线Excel VBA培训

什么是宏?

如果你是VBA的新手,让我先告诉你什么是宏-毕竟,我将在整个教程中继续使用这个术语。

宏是在VBA(Visual Basic for Applications)中编写的代码,允许您在执行时运行块的代码。

通常,您会发现人员(包括我自己)将VBA代码称为宏 - 无论是通过使用宏记录器生成的还是手动编写的。

当你记录宏时,Excel会密切关注你所做的步骤,并用它能理解的语言——VBA记录下来。

由于Excel是一个非常好的票据接受者,它创建了一个非常详细的代码(因为我们将在本教程中稍后看到)。

现在,当你停止录制,保存宏,并运行它,Excel只是回到它生成的VBA代码,并遵循完全相同的步骤。

这意味着即使您对VBA一无所知,您只需通过让Excel记录一次步骤即可自动执行一些任务,然后在稍后重复使用。

现在让我们潜入并看看如何在Excel中录制宏。

获取功能区中的开发人员选项卡

记录宏的第一步是获取ribbon中的Developer选项卡。

如果您可以在功能区中看到开发人员选项卡,请转到下一节,否则请按以下步骤操作:

  • 右键单击ribbon中的任何一个现有选项卡,然后单击“自定义ribbon”选项。它将打开Excel选项对话框。在Excel中自定义ribbon
  • 在“Excel选项”对话框中,您将有“自定义功能区”选项。在右侧的Main Tabs窗格中,选中Developer选项。在Excel中录制宏 - 启用Developer选项卡
  • 单击OK。

上述步骤将使开发人员选项卡在功能区可用。

功能区中的开发人员选项卡

在Excel中记录宏

现在我们拥有一切,让我们了解如何在Excel中录制宏。

让我们录一个非常简单的宏-选择一个单元格并在其中输入“Excel”文本。我使用的文本' Excel '而记录这个宏,但你可以随意输入你的名字或任何其他文本,你喜欢。

以下是录制此宏的步骤:

  1. 单击“开发人员”选项卡。
  2. 在Code组中,单击Macro按钮。这将打开“录制宏”对话框。录制功能区中的开发人员选项卡中的宏按钮
  3. 在“记录宏”对话框中,输入宏的名称。我正在使用这个名字EnterText。在命名宏时,您需要遵循一些命名条件。例如,您不能在其间使用空格。我通常愿意将我的宏名称保留为单个单词,具有不同的部分具有大写的第一个字母表。您还可以使用下划线分隔两个单词 - 例如enter_text。对话框中的宏名称
  4. (可选步骤)如果需要,可以指定快捷键。在这种情况下,我们将使用快捷方式Control + Shift + n。记住,您在这里分配的快捷方式将覆盖您的工作簿中任何现有的快捷方式。例如,如果指定快捷方式Control + S,将不能使用它来保存工作簿(相反,每次使用它时,它将执行宏)。在Excel中录制宏 - 在对话框中分配快捷方式
  5. 在“存储宏”选项中,确保选择“此工作簿”。此步骤可确保宏是工作簿的一部分。当您再次保存并重新开放时,它将在那里,甚至是与某人分享。在此工作簿中录制Excel  -  Store Macro中的宏
  6. (可选步骤)输入描述。我通常不这样做,但如果你非常组织,你可能想要添加宏的内容。
  7. 单击OK。只要您单击OK,它就开始在Excel中记录您的操作。您可以在Developer选项卡中看到“停止录制”按钮,这表明宏录制正在进行中。
  8. 选择细胞A2。
  9. 输入文本excel.(或者您可以使用您的姓名)。
  10. 点击ENTER键。这将选择单元格A3。
  11. 单击“开发人员”选项卡的“停止录制”按钮。在Excel中录制宏-停止录制按钮

恭喜!

您刚刚在Excel中记录了第一个宏。你不再是一个宏观处男了。

虽然宏没有任何有用的东西,但它可以为解释宏记录器在Excel中的工作原理。

现在让我们继续测试这个宏。

按照下面的步骤来测试宏:

  1. 删除单元格A2中的文本。这是为了测试宏是否将文本插入到单元格A2中。
  2. 选择任何单元格 - 除A2之外。这是测试宏是否选择单元格A2。
  3. 单击“开发人员”选项卡。
  4. 在“代码”组中,单击“宏”按钮。
  5. 在宏对话框中,单击宏Name - EnterText。
  6. 单击Run按钮。在Excel中记录宏-在Excel中运行EnterText宏

您会注意到,只要单击“运行”按钮,将插入“Excel”文本“Excel”并选择单元格A3。

现在,这可能都在分裂的第二个,但实际上,宏 - 就像一个顺从的精灵一样 - 遵循您在录制宏时显示的确切步骤。

因此,宏首先选择单元格A2,然后进入文本excel.,然后选择单元格A3。

注意:您还可以使用键盘快捷键运行宏控制+ shift + n(按住控件和换档键,然后按N键)。这是我们在录制时分配给宏的相同键盘快捷键。

录制宏在后台做什么

现在让我们转到Excel后端 - VB编辑器 - 并看看宏真正的拍摄了什么。

以下是在Excel中打开VB编辑器的步骤:

  1. 单击“开发人员”选项卡。
  2. 在代码组中,单击Visual Basic按钮。记录一个宏在Excel - visual basic按钮在ribbon

或者您可以使用键盘快捷键 -ALT + F11(按住ALT键并按F11),而不是以上两步。这个快捷方式也会打开相同的VB编辑器。

现在,如果您是第一次看到VB编辑器,请不要不堪重负。

让我快速地让您熟悉VB编辑器的结构。

记录一个宏在Excel - Vb编辑器解剖

  • 菜单栏:这里是VB编辑器的所有选项。把它看作是VBA的丝带。它包含在使用VB编辑器时可以使用的命令。
  • 工具栏- 这就像VB编辑器的快速访问工具栏。它配备了一些有用的选项,您可以为其添加更多选项。它的好处是工具栏中的一个选项只是点击。
  • Project Explorer窗口- 这是Excel列出了每个工作簿中的所有工作簿和所有对象的地方。例如,如果我们有一个带有3个工作表的工作簿,它将在Project Explorer中显示。这里有一些其他对象,如模块,用户形式和类模块。
  • 代码窗口-这是VBA代码记录或写入的地方。对于项目资源管理器中列出的每个对象,都有一个代码窗口——比如工作表、工作簿、模块等。在本教程的后面,我们将看到录制的宏进入模块的代码窗口。
  • 属性窗口-你可以在这个窗口中看到每个对象的属性。我经常使用这个窗口来命名对象或更改隐藏属性。打开VB编辑器时,您可能不会看到此窗口。要显示此操作,请单击“查看”选项卡,然后选择“属性”窗口。
  • 立即窗口-我经常用the编写代码时立即窗口。当您想要测试一些语句或调试时,它非常有用。它在默认情况下可能不可见,您可以通过单击“视图”选项卡并选择“立即窗口”选项使其显示。

当我们录制宏时 -EnterText,以下事情发生在VB编辑器:

  • 插入新的模块。
  • 宏记录了我们指定的名称 -EnterText
  • 代码是在模块的代码窗口中编写的。

因此,如果在模块上双击(在本例中的模块1)中,将出现如下所示的代码窗口。

宏的代码为Entertext

下面是宏记录器给我们的代码:

子EnterText ()键盘快捷键:Ctrl+Shift+N '范围("A2")。选择ActiveCell。公式1c1 = "Excel"范围("A3")。选择终止子

在VBA中,跟随(撇号标志)未执行。它是评论这只是为了提供信息。如果您删除了这段代码的前五行,这个宏仍然可以正常工作。

现在让我快速掩盖每行代码的作用:

代码以Sub开头,后面跟着宏的名称和空括号。Sub是子程序的缩写。VBA中的每个子例程(也称为过程)都以Sub开始,以End Sub结束。

  • 范围(“A2”)。选择-这一行选择单元格A2。
  • ActiveCell.Formular1C1 =“Excel”- 此行进入活动单元格中的文本Excel。由于我们选择了A2作为第一步,因此它成为我们的活动单元格。
  • 范围(A3)。选择-选择单元格A3。当我们在输入文本后按下Enter键时,结果是选择单元格A3。

我希望现在您对如何在Excel中录制宏的基本了解。

请记住,宏记录器写入的代码绝不是有效的代码。

宏记录仪有时会增加大量绒毛,代码有时不必要。但这并不意味着它没有用。给某人学习VBA,宏记录器可以是分析VBA中的工作方式的好方法。

绝对和相对宏记录

你已经知道Excel中的绝对引用和相对引用。对吧?

如果你不 -首先阅读本教程的参考文献

阅读?让我们继续。

本节稍后将介绍如何在绝对引用和相对引用中记录宏。但在那之前,让我快速总结一下VBA中绝对引用和相对引用之间的区别(以防你变得懒惰,没有读到我之前给出的几行链接):

如果您使用绝对引用选项来记录宏,VBA代码将始终引用您使用的相同单元格。例如,如果您选择单元格A2,输入文本Excel并按enter,每次—无论您在工作表的哪个位置,无论选择哪个单元格,您的代码将首先选择单元格A2,输入文本Excel,然后移动到单元格A3。

如果使用相对参考选项来记录宏,则VBA不会纠正小区引用。相反,与活性细胞相比,它将专注于运动。例如,假设您已经选择了单元格A1,并且开始在相对参考模式下录制宏。

现在选择单元格A2,输入文本Excel,并按enter键。现在,当你运行这个宏,它不会回到单元格A2,相反,它会相对于活动单元格移动。例如,如果单元格K3被选中,它将移动到K4,输入文本Excel,然后最后选择单元格K5。

现在让我告诉你如何在相对引用模式下记录宏:

  1. 选择单元格A1。
  2. 单击“开发人员”选项卡。
  3. 在Code组中,单击“Use Relative References”按钮。它会变成绿色,表示它是打开的。在Excel中记录宏-使用相对引用按钮
  4. 单击录制宏按钮。单击developer选项卡中的Record Macro按钮
  5. 在“记录宏”对话框中,输入宏的名称。我正在使用这个名字EnterTextRelRef在Excel中录制宏 - 相对参考宏名称ENRERTEXT
  6. 在“存储宏”选项中,确保选择“此工作簿”。
  7. 单击OK。
  8. 选择细胞A2。
  9. 输入文本excel.(或者您可以输入您的姓名)。
  10. 点击ENTER键。这将把光标带到小区A3。
  11. 单击“开发人员”选项卡的“停止录制”按钮。

这将在相对参考模式中记录宏。

现在这样做。

  1. 选择任何单元格(a1以外)。
  2. 单击“开发人员”选项卡。
  3. 在“代码”组中,单击“宏”按钮。
  4. 在宏对话框中,单击宏名称 -EnterTextRelRef
  5. 单击Run按钮。

会发生什么呢?光标是否回到单元格A3 ?

它不会- 因为您在相对参考模式下录制了宏。所以光标将相对于活动单元移动。例如,如果选择了Cell K3时,它将输入Text Excel是单元K4,并最终选择单元格K5。

下面是在后端被记录的代码(VB编辑器模块代码窗口):

相关参考的VBA宏代码

sub entertextref()''entertextreref宏''activeCell.offset(1,0).range(“A1”)。选择ActiveCell.formular1C1 =“Excel”ActiveCell.offset(1,0).range(“A1”)。选择终止子

请注意,整个代码没有在任何地方引用单元格K3或K4。相反,它使用Activecell来引用选定的单元格,并使用Offset相对于活动单元格移动。

不要担心代码具有的范围(“A1”)部分。它是宏记录器添加无目的的不必要的代码之一,可以删除。如果没有它,代码就会很好。

“在Developer”选项卡中的“使用相对参考”按钮是一个切换按钮。通过单击它可以将其关闭(并切换回绝对参考)。

这是宏记录器做不到的

宏记录器是伟大的跟随你在Excel和记录你的确切步骤,但它可能失败你时,你需要它做更多。

  • 您无法在不选择对象的情况下执行代码。如果您希望宏记录仪转到下一个工作表并突出显示A列中的所有填充单元格,而不会离开当前工作表,那么它将无法执行此操作。这是因为如果我要求您这样做,即使您将无法执行此操作(不留下当前表)。如果您自己不能这样做,宏记录仪将如何捕捉您的行为。在这种情况下,您需要手动转移并创建/编辑代码。
  • 不能用宏记录器创建自定义函数。使用VBA,您可以创建可以在工作表中使用的自定义功能作为常规功能。您可以通过手动编写代码来创建此功能。
  • 你不能基于事件运行代码:在VBA中,您可以使用许多事件 - 例如打开工作簿,添加工作表,双击单元格等,运行与该事件关联的代码。您可以使用宏记录器来执行此操作。
  • 你不能用宏记录器创建循环。手动输入代码时,您可以利用电源循环在VBA(如为下,每个接下来,做一小时,直到)。但是,当您录制宏时,您无法执行此操作。
  • 你无法分析条件:您可以使用宏记录器检查代码中的条件。如果你手动写一个VBA代码,你可以使用如果其他语句分析条件并运行代码(如果为true)(或如果为false则为另一个代码)。
  • 您无法通过宏步骤中的参数:当你记录一个宏时,它将不会有任何参数。子例程可以接受输入参数,这些参数可以在宏中用来执行任务。在记录宏时,不能这样做,因为记录的宏是独立的,并且没有连接到任何其他现有宏。

Macro-Enabled文件扩展名

录制宏或在Excel中手动编写VBA代码时,您需要使用启用宏的文件扩展(.xlsm)保存文件。

在Excel 2007之前,有一种用于足够的文件格式 - .xls。

但从2007年开始,.XLSX被引入为标准文件扩展名。保存为.xlsx的文件无法包含宏。因此,如果您有一个带有.xlsx扩展的文件,并且您录制/写入宏并保存并保存,它将警告您以启用宏的格式将其保存,并显示对话框(如下所示):

在xlsx文件中记录Excel中的宏错误

如果选择“否”,Excel允许您以启用宏的格式保存它。但如果单击Yes, Excel将自动从工作簿中删除所有代码,并将其保存为.xlsx工作簿。

因此,如果工作簿中有一个宏,需要将其保存为.xlsm格式,以保存该宏。

在Excel中运行宏的不同方法

到目前为止,我们只看到了一种方法在Excel中运行宏- 使用宏对话框。

但是有很多方法可以运行宏。

  1. 从Ribbon(开发者标签)运行宏
  2. 使用键盘快捷键(您必须分配)
  3. 将宏分配给形状
  4. 将宏分配给按钮
  5. 从VB编辑器运行宏

结论-记录一个宏时,卡

我已经提到了宏记录器是任何使用VBA在Excel中的有用工具。

当您多次使用宏记录器时,您会注意到它吐出许多不必要的代码。然而,它仍然是有用的,并为您提供了从哪里开始的一些想法。例如,如果我要求您使用VBA筛选一列单元格,而您不知道语法是什么,您可以快速记录一个宏并检出代码。

宏记录器是一个不可或缺的工具,即使经过多年的VBA编码体验,我常常携带宏记录仪寻求帮助。

您也可能喜欢以下Excel教程:

Excel电子书订阅

免费的EXCEL的书

获得51个Excel提示电子书来提高你的生产力,更快地完成工作

6关于“如何在Excel中录制宏的思考 - 逐步指导”

  1. 内容丰富/解释透彻/但不适合我:-
    我可以记录
    II.Relref仍然是灰色的,而不是绿色
    III.显示停止宏标志的注意。
    vi.code窗口尚未打开。
    一路感谢。

评论被关闭。