看看VBA的Sub过程和Function过程
发布时间:2023-12-11 23:17:02
经过前面的一系列文章的示例学习,我们应该已经熟悉了Sub过程。通常我们看到的Sub过程的基本形式是:
Sub 过程名称()
[此处放置代码语句]
Exit Sub
End Sub
这也是我们在编写大多数VBA程序时用到的结构。其中:
过程名称为编程人员给过程命名的名称,其命名规则与变量名称的规则相同。在同一模块中的过程名称不能同名。
Sub和End Sub配套出现,它们之间构成一个完整的程序过程。
过程中的代码可以放置ExitSub语句,表示提前退出过程。
通常,在VBE编辑器中,写下sub和过程名称,按下回车键后,会自动添加End Sub语句。Sub过程用来执行操作,而Function过程可以返回值,创建自定义函数。Function过程的基本语法形式为:
Function 过程名称()
[此处放置代码语句]
[过程名称= 表达式或值]
[Exit Function]
[此处放置代码语句]
[过程名称= 表达式或值]
End Function
可以看出,其形式与Sub过程的基本形式相似,只是将关键词Sub换成了Function。注意:
在Function过程的代码语句中,应至少有一次把某个确定的值赋值给函数过程的名称。
建议避免使用Excel内置函数名称、单元格引用、单元格区域的名称作为函数过程的名称。
Function过程不能对单元格区域进行修改,不能执行与对象相关的操作。
Function过程可以应用在工作表公式中,就像Excel的内置函数一样;Function过程也可以应用在VBA代码中。
过程代码中可以放置ExitFunction语句,表示提前退出过程。
按惯例,方括号表示可选。
下面的示例代码统计当前可见工作簿的数量:
Function lWkbNum()
Dim lCount As Long ‘声明计数变量
Dim wkb As Workbook ‘声明工作簿对象变量
‘遍历应用程序中的工作簿
For Each wkb In Application.Workbooks
‘如果为可见工作簿则增加1
If wkb.Windows(1).Visible Then
lCount = lCount + 1
End If
Next wkb
‘将结果赋值给函数名
lWkbNum = lCount
End Function
就像运用Excel内置函数一样,在工作表中输入“=lWkbNum()”,显示当前已打开的可见工作簿的数量,如下图所示。
图:在单元格A1中输入=lwkbnum(),显示2,即当前打开的可见工作簿数为2个
下面的代码在Sub过程中调用自定义的lWkbNum函数:
Sub testlWkbNum()
MsgBox “当前可见工作簿的数量为:”& lWkbNum
End Sub
运行后显示如下图所示的消息框:
由于之前的一系列文章中都是使用的Sub过程作为的例子,所以本文详细介绍了Function过程的最基础知识,给您一个初步的认识。
不管是Sub过程还是Function过程,都可以带有参数,Function过程还可以设置返回值的类型,我们将在后续逐步深入这些知识。


猜你喜欢
- 作为 Windows 的资深用户,大家应该都知道开始菜单的重要性。最近有朋友反应,开始菜单突然就打不开了,连万能的重启还是无济于事?不用担心
- untag一般vlan用的,tag是多个vlan互通用的,把vlan比成隔离钢板的话那么tag是穿甲弹,untag是鸡蛋因为不具有穿透能力1
- 如何解决ps文件大于2G存不了的问题 ?ps是一款图片编辑软件,用户可以使用其对图片进行编辑处理。ps文件大于2G存不了?怎么解决?下面就是
- 电脑的硬盘灯总亮,难不成是咱RP不好遇到了传说中的木马?NO!…NO!…NO!…,咱之前可是用杀毒软件轮番轰炸过好几遍啊!也许,是该换个思路
- Windows10无法登录LOL提示“服务器连接异常”的解决方案解决方案:1、在开始菜单单击右键,点击“控制面板”;2、将查看方式修改为“小
- 相信小伙伴们都知道我们可以在Word文档中插入Excel表格,插入之后我们可以正常在其中编辑数据并设置想要的样式效果,比如我们可以将实线框的
- 如何将好看视频和银行卡解绑?我们在使用好看视频的时候,将其与银行卡进行了绑定,现在想要将其解绑,但是不知道具体怎么操作。下面就是好看视频解绑
- 在使用电脑的过程中可能会遇到要连接无线网络还是有线网络的情况,想要切换到有线连接需要手动关闭无线连接才行。这就涉及到网络优先级的情况了,我们
- LEN函数用于返回文本字符串中的字符个数,其语法是:LEN(text)其中,text参数为要计算长度的文本字符串,或对含有文本单元格的引用,
- Build2016大会首日演讲已经结束,首日的主题演讲(Keynote)看得大家心情为之振奋,今天我们就花3分钟的时间来汇总一下Build2
- 大家好,我是Mac天真,专业讲解Mac相关教程,这次给大家带来fcpx教程从入门到精通的教程,是非常适合小白学习的fcpx教程。本期内容讲解
- 近期有部分Win10用户遇到了任务管理器显示磁盘100%,这也造成了经常出现各种卡死的情况,那么有没有什么办法解决呢?下面小编就给大家分享一
- WPS Office怎么制定试卷?小编来告诉你WPS Office轻松制定标准试卷方法吧! 1. 纸张的设置一般来
- Win7旗舰版怎么打开蓝牙?许多用户在使用电脑的时候喜欢使用蓝牙鼠标、蓝牙键盘等蓝牙设备,但是win7旗舰版的蓝牙默认是关闭的,当我们使用这
- Win10如何恢复已删除的EFI分区?最近,一些朋友发现在使用Win10系统的过程中EFI分区已删除。如果找不到EFI分区,我们应该如何还原
- 如果我们想要了解一个陌生的地方的网络是通过什么途径上网的,该怎么判断上网方式呢?想要知道计算机的上网方式可以通过网络共享中心进行判断,请用户
- CS1.5是一个以团队合作为主的第一人称射击类游戏,但是很多朋友反映在Win 7 64位系统中不能玩游戏CS 1.5,怎么回事呢,win7系
- 我们的电脑系统有多个系统分区,因为文件不能全部放在一个系统分区内,非常容易造成系统的卡顿,但是有的用户在使用Win10系统的时候,突然发现电
- 有很多朋友已经用上了Win11系统,有些人用记事本打开hosts文件进行修改的时候发现不能正常保存,老是会保存成txt文件,而正常的host
- 怎么把png的图片格式转换成jpg图片格式?许多用户在下载图片的时候发现自己下载的图片是png格式,而有些时候必须要使用jpg格式的图片,那