讲师中心 微信公众号
AI工具推荐 视频效率加速

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

落宇酱_7189

落宇酱_7189

发布时间:2026-05-29 09:13:00

|

220人浏览过

|

来源于php中文网

原创

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)

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

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

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

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

Sub Main()
    '将函数返回值赋给变量
    Dim result1 As Double
    result1 = Add(12, 345)
<pre class="brush:php;toolbar:false;">'将函数返回值嵌入更复杂的计算中
Dim result2 As Double
result2 = RandNum + Add(12, 345)

End Sub

'生成一个 0~100 范围内的随机数 Function RandNum() RandNum = Rnd * 100 End Function

'实现两数相加并返回结果 Function Add(num1 As Double, num2 As Double) As Double Add = num1 + num2 End Function

提前终止函数执行

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

Exit Function 语句

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

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

End 语句

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

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

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

小结

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

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

热门AI工具

更多
VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
function是什么
function是什么

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

2600

2023.08.04

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

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

434

2023.10.07

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

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

80

2026.09.23

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

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

20

2026.09.23

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

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

20

2026.09.23

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

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

20

2026.09.22

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

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

40

2026.09.22

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

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

20

2026.09.22

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

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

20

2026.09.22

热门下载

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

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn