Excel中的VBA是什么?录制一个简单宏
想象一下,您可以从纽约市传送到澳大利亚的悉尼,在五秒钟内。你会打扰传统的22小时飞行吗?当然你不会。
假设您可以在5秒钟内创建一个包含表格和图表的完整Excel报表,只需点击一次鼠标。你想知道怎么做吗?或者你更愿意用你生命中的22个小时来手工制作这份报告?
如果你对5秒选项的回答是“是”,那么VBA和Excel中的宏就是你要找的。
想想一下,你发现自己在Excel中表现出同一组步骤,一遍又一遍。这是使用宏的主要候选者。
想象一下,在Microsoft Excel中执行以下过程,单击
- 将工作簿中的每个工作表保存为单独的文件。
- 将表格作为电子邮件附件发送给同事。
- 分类工作簿中的所有表。
- 从工作簿中删除所有注释、超链接、图像或个人信息。
- 用函数结果替换所有Excel函数。
- 用适当的颜色、字体和其他装饰功能格式化所有的表格。
- 在工作簿中刷新所有报告(或枢轴表)。
最后更新了4月2021年
使用Microsoft Excel VBA和Excel Macros(包含的现实世界项目)自动执行复杂任务。实现更多。省时间。|由Leila Gharani
探索课程想象一个你希望更有效率的过程。它可能可以与使用VBA语言和宏代码。
VBA - Excel的传送器
那么VBA在Excel中是什么?Visual Basic for Applications(或VBA)是一种计算机编程语言的Visual Basic子集。将其视为Visual Basic,或VB的“Lite-version”。
人们使用VB创建直接在主机操作系统下运行的自包含程序。您可以使用VBA创建在其中一个Office应用程序中运行的进程和例程,例如Excel。
VBA的存在是为了自动化通常由人长期执行的任务和流程。这些自动化是VBA宏。
通过实现宏,可以减少创建Excel报表所需的工作和时间。这可能是80%,90%,或者在某些情况下是99.9%,如果我们把按下一个按钮算为花费的精力。
创建VBA宏
您可以使用两个关键方法创建宏:宏记录器和手工制作的VBA代码。通常,您会在同一个项目中使用这两种方法。
您可以使用宏记录器为主要任务创建一个通用框架。您可以使用手工编写的代码来包含宏记录器无法实现的特性,比如用户输入和进程循环。
宏记录器是一种简单的方法,无论是初学者和VBA老兵创建宏。不过,这并不是编写VBA代码的最有效的方法。它可以完成工作,但并不总是以最优雅的方式。
如果你想获得宏的全部功能,你需要进入VBA代码的世界。这可能需要一些时间和实践,但这是一种带来巨大回报的投资。
不要让上面的例子恐吓你。宏记录器可以为您编写大部分代码。
运行一个宏
运行宏时有几种选项。
- 使用键盘快捷键(alt f11)
- 单击快速访问工具栏上的按钮
- 单击开发人员选项卡中的功能区上的按钮
- 单击添加到电子表格中的按钮
- 单击添加到电子表格中的形状或图标
- 单击要添加到电子表格的图像
这些方法中的每一种都有利弊。最好学习尽可能多的这些,以便在任何特定情况下使用最佳选择。
相对宏和绝对宏
Excel单元格引用可以以相对模式或绝对模式运行。换句话说,重复公式时改变的引用与保持不变的引用。VBA代码也可以是相对的或绝对的。
当您有两个进程时,这很有用。一个过程需要在电子表格中的同一位置发生。每次运行它时都需要在潜在的不同位置发生。
想象一个需要位于电子表格顶部相同单元格中的表单标题。您还有一个合法的免责声明,它必须位于最后使用的行下面的两行。您可以将标题创建为一个绝对宏,并将法律声明创建为一个相对宏。
让用户输入
VBA可以从用户那里获得输入,并在执行期间将该输入包含在代码中。
您可以提示用户输入日期范围,而不是编写一个总是为去年的销售创建销售报告的宏。通过获取输入,您可以使用相同的宏报告10天或10年的销售情况。您不必为您希望报告的每一个可能的期间创建一个单独的宏。
设想制作一个下拉列表,允许用户选择要报告的部门、销售代表或产品。同样,每次根据不同的标准创建报表给宏提供了很大的灵活性。
更少的宏意味着更少的生产时间,以及更容易的维护。它们也意味着更少的故障修复。
这些请求可以是对话框或用户表单。一个输入框将一次收集一个问题的信息…
一个用户表单可以接受多条信息,并根据不同的逻辑处理所有信息
我们可以使用用户表单来收集我们将存储在底层表中的信息。您可以使用这些表来提供各种不同的报告。
本地和全局宏
传统的Excel文件存储您的Local宏。如果你通过电子邮件附件、云共享或老式运动鞋网发送文件,它们就会随身携带文件。
如果您希望为那些可能不擅长Excel的人自动化用户流程,那么这是理想的选择。让人们点击一个按钮,然后让宏引导他们快速而准确地完成整个过程或执行整个步骤集。
全局宏是特定于您的机器的,它的作用更像是一个内置的程序特性。无论您使用什么文件,这些宏都是可用的。
访问VBA代码
你可以查看VBA代码Visual Basic编辑器。您可以使用三种方法之一启动此编辑器:
· 请按alt f11键盘组合
·右键单击任何工作表标签,选择“”视图代码”
·从选项卡/丝带中选择开发者标签->代码(组)-> Visual Basic
VB编辑器向您展示了一些东西。您可以看到所有打开的工作簿的列表,所有模块表(这些通常包含VBA代码),以及一个窗口来查看所选模块的VBA代码。
创建一个简单的宏
让我们看看宏可以节省时间的强大,以及他们创建的容易程度。我们将创建一个非常简单的宏,几乎每个人都可以使用。
假设我们必须在电子表格的开头输入并自定义一个标题。
这是我们每天做几次的事情。在内容和外观方面总是相同的。我们可以录制创建标题的过程,因此它可以是单击,可重复的事件。
1.打开一个空白的工作簿。
2.选择查看(标签) - >宏(下部按钮)- >纪录宏。
3.输入宏名称。名称是唯一必要的部分。您可以使用下面的图像作为您可以填充的其他输入的示例。
4.点击好吧启动录音机。
选择当前空白表的单元格A1。创建您选择的标题。这可以包括公司名称,地址,电话号码,网站地址等信息。
自定义字体、大小、颜色和对齐。你可以对标题做任何你通常做的事情。
创建并自定义标题后,停止录制过程。通过选择查看(标签) - >宏(按钮的下部)- >停止录制。
测试宏
现在让我们测试宏的性能和准确性。创建一个新的空白表,然后通过选择来运行宏查看(标签) - >宏(按钮的上部)。
从宏对话框,选择您选择的名称的宏并单击运行。
结果应该是您在记录过程中执行的步骤的精确重复。
查看代码
要将录制的步骤视为VBA代码,请选择查看(标签) - >宏(下部按钮)- >查看宏。
从列表中选择宏,然后单击编辑。
代码将在Visual Basic编辑器中打开,并显示如下:
子Insert_Heading()”这个宏将在当前工作表中插入标准的“从单元格A1开始的公司标题”。范围(" A1 ")。选择ActiveCell.FormulaR1C1 = "ACME Widget Corporation" Range("A3").Select ActiveCell.FormulaR1C1 = "Pazmangasse 24" Range("A4").Select ActiveCell.FormulaR1C1 = "Vienna, Austria" Range("A5").Select ActiveCell.FormulaR1C1 = "A-1020 Vienna" Range("A6").Select ActiveCell.FormulaR1C1 = "AUSTRIA" Range("A1").Select With Selection.Font .Name = "Century Gothic" .Size = 24 .ThemeColor = xlThemeColorAccent6 .TintAndShade = -0.249977111117893 End With Range("A3:A6").Select With Selection.Font .Name = "Lato Heavy" .Size = 18 .ThemeColor = xlThemeColorAccent2 .TintAndShade = -0.499984740745262 End With Range("A8").Select End Sub
请记住,您可以以更友好的方式运行宏。这可以类似于单击快速访问工具栏上的按钮。
关键
这是一个非常简单的Excel宏示例。如果说宏有什么好处的话,那就是自动化重复的、可预测的任务。不管任务有多困难。只要有一个合理的方法来组织和分析数据,您可以使用宏自动化它。
下次你用同样的方式做同样的任务时,对自己说,“我应该把它变成一个宏观。”