Excel 中的 VBA:什么是 Visual Basic for Applications?

⚡ 智能摘要

Excel 中的 VBA(Visual Basic for Applications)是一种事件驱动型语言,可用于自动化任务并在 Excel 中构建自定义程序。本页将介绍 VBA 的定义、编程基础知识、如何启用“开发工具”选项卡、一个“Hello World”程序以及一个使用 PMT 函数的 EMI 计算器。

  • ‍💻 核心定义: VBA 是一种事件驱动的编程语言 Microsoft 用于自动化和扩展 Office 应用程序。
  • 🔤 基本: 变量是命名的内存位置,Excel 中的 BODMAS 顺序和逻辑运算符也适用于 VBA。
  • 🛠️ 开发者选项卡: VBA 位于“开发工具”选项卡中,可通过“选项”>“自定义功能区”启用。
  • 🟢 子程序: 每个 VBA 程序都以 Sub 开头,以 End Sub 结尾。
  • 👋 你好世界: 输入Box 读取用户名和消息Box 显示问候语。
  • ???? EMI计算器: WorksheetFunction.Pmt 根据利率、期限和贷款金额计算等额月供。

Excel 中的 VBA

这个国家的每个人都应该学习如何编写计算机程序……因为它能教会你如何思考。”——史蒂夫·乔布斯

我想延续史蒂夫·乔布斯的名言,世界上每个人都应该学习如何编写计算机程序。你最终可能不一定成为一名程序员或编写程序,但它会教你如何思考。

什么是 Visual Basic 应用程序 (VBA)?

Visual Basic应用程序(VBA) 是一种事件驱动的编程语言,由 Microsoft 开发 Office 应用程序。VBA 有助于开发自动化流程, Windows API 和用户定义函数。它还使您能够操作主机应用程序的用户界面功能。

在我们进一步讨论细节之前,让我们先用通俗易懂的语言来看一下计算机编程是什么。假设你有一个女佣。如果你想让女佣打扫房子和洗衣服。你用英语告诉她该做什么,她就会为你做这些工作。当你使用计算机时,你会想要执行某些任务。就像你告诉女佣做家务一样,你也可以告诉计算机为你做这些任务。

告诉计算机您希望它为您做什么的过程就是所谓的计算机编程。就像您用英语告诉女仆做什么一样,您也可以使用类似英语的语句告诉计算机做什么。类似英语的语句属于高级语言类别。VBA 是一种高级语言,您可以使用它来让 Excel 服从您的所有强大意志。

VBA 实际上是 Visual Basic 6.0 的一个子集 BASIC 代表 B初学者 A目的 S象征性的 I指令 C颂。

为什么使用 VBA?

VBA 可让您使用类似英语的语句来编写创建各种应用程序的指令。VBA 易于学习,并且具有易于使用的用户界面,您只需在其中拖放界面控件即可。它还允许您通过使其按照您想要的方式运行来增强 Excel 功能。

Excel 中 VBA 的个人和商业应用

对于个人用途,您可以将其用于简单的宏,这些宏将自动执行大多数日常任务。阅读有关宏的文章,了解有关如何实现此目的的更多信息。

对于商业用途,您可以创建由 Excel 和 VBA 提供支持的完整功能强大的程序。这种方法的优点是您可以在自己的自定义程序中利用 Excel 的强大功能。

Visual Basic 应用程序简介

在编写任何代码之前,我们需要先了解基础知识。以下基础知识将帮助您入门。

  • 请按需咨询 – 我们在高中学习过代数。求 (x + 2y),其中 x = 1 且 y = 3。在此表达式中,x 和 y 是变量。它们可以分配任意数字,即本例中分别为 1 和 3。它们也可以分别更改为 4 和 2。简而言之,变量是内存位置。使用 VBA Excel 时,您也需要声明变量,就像在代数课中一样
  • 创建变量的规则
    • 不要使用保留字——如果您是一名学生,您不能使用讲师或校长的头衔。这些头衔是为讲师和学校当局保留的。保留字是那些在 Excel VBA 中具有特殊含义的字,因此,您不能将它们用作变量名。
    • 变量名不能包含空格 – 您不能定义名为 first number 的变量。您可以使用 firstNumber 或 first_number。
    • 使用描述性名称——用自己的名字命名变量非常诱人,但请避免这种情况。使用描述性名称,例如数量、价格、小计等。这将使您的 Excel VBA 代码易于阅读
  • 算术运算符 – 规则 Brackets 除法、乘法、加法和减法trac运算顺序(BODMAS)适用,因此请记住在处理使用多个不同算术运算符的表达式时应用它们。就像在 Excel 中一样,您可以使用
    • + 用于添加
    • – 用于子版tracTION
    • * 用于乘法
    • / 表示除法。
  • 逻辑运算符——前面教程中介绍的逻辑运算符概念也适用于使用 VBA。这些包括
    • 如果语句
    • OR
    • 不是
    • AND
    • TRUE
    • FALSE

如何启用“开发人员”选项卡

以下是如何在 Excel 中启用开发人员选项卡的分步过程:

  • 创建新工作簿
  • 单击功能区上的开始按钮
  • 选择选项
  • 单击自定义功能区
  • 选中开发者复选框,如下图所示
  • 单击确定

启用开发人员标签

您现在将能够在功能区中看到“开发人员”选项卡

VBA 你好,世界!

现在我们将演示如何使用 VBA 编程语言进行编程。VBA 中的所有程序都必须以“Sub”开头并以“End sub”结尾。此处的名称是您要分配给程序的名称。而 sub 代表子程序,我们将在本教程的后面部分学习。

Sub name()
.
.
.
End Sub

我们将创建一个基本的 VBA 程序,该程序显示一个输入框来询问用户的姓名,然后显示一条问候消息

本教程假设您已完成 Excel 中的宏 并在 Excel 中启用了 DEVELOPER 选项卡。

  • 创建新工作簿
  • 将其保存为启用 Excel 宏的工作表格式 *.xlsm
  • 点击开发者选项卡
  • 单击控件功能区栏下的“插入”下拉框
  • 选择一个命令按钮,如下图所示

VBA Hello World 程序

在工作表的任意位置绘制命令按钮

您将看到以下对话窗口

VBA Hello World 程序

  • 将宏名称重命名为btnHelloWorld_Click
  • 点击新建按钮
  • 您将看到以下 VBA 代码窗口

VBA Hello World 程序

输入以下指令代码

Dim name As String
name = InputBox("Enter your name")
MsgBox "Hello " + name

这里,

  • “将名称设为字符串” 创建一个名为 name 的变量。该变量将接受文本、数字和其他字符,因为我们将其定义为字符串
  • “名称=输入Box(“输入你的名字”)” 调用内置函数输入Box 显示一个带有标题“输入您的姓名”的窗口。输入的姓名随后存储在 name 变量中。
  • MsgBox “你好”+名字” 调用内置函数 MsgBox 显示“Hello”和输入的名字。

您的完整代码窗口现在应如下所示

VBA Hello World 程序

  • 关闭代码窗口
  • 右键单击按钮 1,然后选择编辑文本
  • 输入 打招呼

VBA Hello World 程序

  • 点击“打招呼”
  • 你将得到以下输入框

VBA Hello World 程序

  • 输入你的名字,例如 Jordan
  • 您将收到以下消息框

VBA Hello World 程序

恭喜,你刚刚在 Excel 中创建了第一个 VBA 程序

在 Excel 中创建简单 EMI 计算器的分步示例

在本教程练习中,我们将创建一个计算 EMI 的简单程序。EMI 是“等额月供”的缩写。这是您获得贷款时每月偿还的金额。下图显示了计算 EMI 的公式。

在 Excel 中创建一个简单的 EMI 计算器

上述公式比较复杂,可以用 excel 编写。好消息是 excel 已经解决了上述问题。您可以使用 PMT 函数来计算上述内容。

PMT 函数的工作原理如下

=PMT(rate,nper,pv)

这里,

  • “速度” 这是月利率。它是利率除以每年还款次数
  • “nper” 这是总还款次数。它是贷款期限乘以每年还款次数
  • “光伏” 现值。这是实际贷款金额

使用 Excel 单元格创建 GUI,如下所示

在 Excel 中创建一个简单的 EMI 计算器

在第 7 行和第 8 行之间添加一个命令按钮

将按钮宏命名为btnCalculateEMI_Click

点击编辑按钮

输入以下代码

Dim monthly_rate As Single, loan_amount As Double, number_of_periods As Single, emi As Double
monthly_rate = Range("B6").Value / Range("B5").Value
loan_amount = Range("B3").Value
number_of_periods = Range("B4").Value * Range("B5").Value
emi = WorksheetFunction.Pmt(monthly_rate, number_of_periods, -loan_amount)
Range("B9").Value = emi

这里,

  • “Dim monthly_rate 为 Single,…” Dim 是用于定义 VBA 中的变量其中,monthly_rate 是变量名,Single 是数据类型,表示该变量将接受数字。
  • “monthly_rate = 范围(“B6”)。值/范围(“B5”)。值” Range 是用于从 VBA 访问 Excel 单元格的函数,Range(“B6”)。Value 引用 B6 中的值
  • “工作表函数.Pmt(…)” WorksheetFunction 是用于访问 Excel 中的所有函数的函数

下图为完整源代码

在 Excel 中创建一个简单的 EMI 计算器

  • 单击保存并关闭代码窗口
  • 按照下面的动画图所示测试你的程序

在 Excel 中创建一个简单的 EMI 计算器

如何在 Excel 示例中使用 VBA

以下步骤将解释如何在 Excel 中使用 VBA。

步骤1) 打开 VBA 编辑器

在主菜单的“开发人员”选项卡下,单击“Visual Basic”图标,它将打开您的 VBA 编辑器。

在 Excel 中使用 VBA

步骤2) 选择 Excel 工作表 & Double 点击工作表

它将打开一个 VBA 编辑器,您可以从中选择要运行代码的 Excel 工作表。要打开 VBA 编辑器,请双击工作表。

在 Excel 中使用 VBA

它将在文件夹右侧打开一个 VBA 编辑器。它将显示为一个空白区域。

在 Excel 中使用 VBA

步骤3) 在 Msg 中写入您想要显示的任何内容Box

在此步骤中,我们将看到我们的第一个 VBA 程序。要读取和显示我们的程序,我们需要一个对象。在 VBA 中,该对象或介质位于 Msg 中Box.

  • 首先,写上“Sub”,然后写上你的“程序名称”(Guru99)
  • 在 Msg 中写入您想要显示的任何内容Box (guru99-学习很有趣)
  • 通过 End Sub 结束程序

在 Excel 中使用 VBA

步骤4) 点击编辑器顶部的绿色运行按钮

下一步,您必须通过单击编辑器菜单顶部的绿色运行按钮来运行此代码。

在 Excel 中使用 VBA

步骤5) 选择工作表并单击“运行”按钮

运行代码时,会弹出另一个窗口。在这里,您必须选择要显示程序的工作表,然后单击“运行”按钮

在 Excel 中使用 VBA

步骤6) 在 Msg 中显示消息Box

当你点击运行按钮时,程序就会执行。它会在 Msg 中显示消息Box.

在 Excel 中使用 VBA

下载上述Excel表格 Code

常见问题

宏是Excel保存为代码的步骤记录。VBA是编写这些代码的语言。每个录制的宏都是VBA代码,但也可以手动输入VBA代码来完成录制无法实现的功能。

Sub 表示子程序(一个已命名的代码块)的开始,End Sub 表示子程序的结束。Excel 会执行它们之间的语句。当代码需要返回值时,则使用函数。

输入Box 显示一个小窗口,要求用户输入一个值并返回该值。消息Box 向用户显示一条消息。它们共同作用,使 VBA 程序能够读取输入并显示结果,而无需工作表。

是的。Excel 中的 Copilot 等 AI 功能和代码助手可以根据简单的描述(例如“添加一个清除工作表的按钮”)生成 VBA 代码。用户将其粘贴到编辑器中,并在副本上进行测试。

是的。AI助手会读取错误信息和代码,指出出错的行,并给出修复建议,例如数据类型错误或缺少引用。用户应用更改并测试。

总结一下这篇文章: