VBA 函数(Function)入门教程和实例

落宇酱_7189

落宇酱_7189

2026-05-29

220人浏览

原创

vba 函数(function)入门教程和实例

本文将带你系统掌握 VBA 函数(Function)的核心概念,涵盖函数的定义方式、参数传递机制、返回值设置以及执行流程等关键知识点。

VBA 中的函数与子过程(Sub)结构高度相似,二者最本质的差异在于:函数具备返回值能力,而子过程不具备。

不带参数的函数

不接收任何输入参数的 VBA 函数,其基本语法格式如下:

Function [函数名称]() As [返回值数据类型]
    代码语句1
    代码语句2
    ...
    代码语句n
    [函数名称] = [待返回的结果]
End Function

其中,Function 和 End Function 是函数体的起始与终止标识符。

相较于子过程,函数体内必须包含形如 [函数名] = [值] 的赋值语句——这正是函数输出结果的关键所在。同时,在函数声明时需明确指定其返回值的数据类型,该写法与变量声明规则一致。

来看一个具体示例:

'定义一个无参函数,随机返回 True 或 False
Function RandomLogic() As Boolean
    RandomLogic = Rnd() > 0.5
End Function

该函数名为 RandomLogic,返回类型为 Boolean。每次调用时,利用内置函数 Rnd() 生成 0 到 1 之间的随机小数,并与 0.5 比较大小,从而得出布尔型结果(True 或 False),再将其赋给函数名本身,完成返回操作。

带参数的函数

和子过程一样,函数也支持接收一个或多个参数,其语法结构与 Sub 过程完全相同:

Function [函数名称]([参数1] As [类型1], ..., [参数n] As [类型n]) As [返回值类型]
    代码语句1
    代码语句2
    ...
    代码语句n
    [函数名称] = [返回结果]
End Function

所有传入的参数均可在函数内部直接使用,参与逻辑运算或数据处理。

以下是一个典型实例:

Function Add2Number(num1 As Double, num2 As Double) As Double
    Add2Number = num1 + num2
End Function

此函数接收两个 Double 类型数值作为输入,计算它们的和,并以 Double 类型返回结果。

如何调用函数(Function)

由于函数具有返回值特性,因此它与子过程在调用方式上存在明显区别。若某个函数未设定返回值,则其行为与子过程几乎一致,调用方法也相同。

对于有返回值的函数,常见调用场景分为两类:

  • 将返回值赋给变量保存
  • 将返回值直接用于其他表达式或运算中

无论哪种情形,调用语法均保持统一:
▶ 无参函数直接写函数名;
▶ 有参函数则需将参数置于圆括号内,紧跟函数名之后。

'将函数返回值嵌入更复杂的计算中
Dim result2 As Double
result2 = RandNum + Add(12, 345)

提前终止函数执行

通常情况下,函数从 Function 开始,到 End Function 结束。但在某些业务逻辑中,可能需要根据条件提前退出当前函数。VBA 提供了两种实现方式:Exit Function 和 End。

Exit Function 语句

当程序运行至 Exit Function 时,会立即退出当前正在执行的函数,并返回控制权给调用方。

⚠️ 注意:Exit Function 只影响当前函数,不会干扰其上级调用者(如父级 Sub 或其他 Function)的正常运行。

End 语句

一旦执行到 End 语句,整个 VBA 环境将被强制终止——所有正在运行的过程和函数都会被中断。

在实际开发中,应尽量避免使用 End。它的作用类似于计算机的“强制断电”,会导致以下后果:

  • 所有对象的事件无法触发;
  • 正在运行的所有 VBA 代码立即停止;
  • 所有对象引用失效;
  • 已打开的用户窗体自动关闭,且不执行任何卸载事件。

小结

函数与子过程在语法结构和参数处理方面高度相似,核心差异仅在于:函数可返回一个确定类型的值,而子过程不可。两者均可接受零个或多个参数,且参数可在函数/过程中自由使用。调用函数时,务必注意参数须置于括号中,并紧随函数名称之后。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.04

2560

5

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

2023.10.07

434

5

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

60

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

20

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

20

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

20

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

20

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

20

19

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

2026.09.22

20

19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习