Excel VBA中怎么设置Function
发布时间:2022-04-06 06:26:08
Excel VBA中怎么设置Function,经过前面的一系列文章的示例学习,我们应该已经熟悉了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过程还可以设置返回值的类型,我们将在后续逐步深入这些知识。
猜你喜欢
- Excel工作表密码忘记了怎么办呢?很多用户对此还不是很清楚,小编这里就给大家带来有关Excel工作表密码忘记了怎么办的回答,希望对大家有所
- wps怎么绘制地球仪图标?想要画一个地球仪,该怎么绘制地球仪呢?下面我们就来看看使用wps画扁平化地球仪的方法,需要的朋友可以参考下wps中
- 今天小编为大家带来的是把EXCEL2016中的数据进行分列批量编辑的方法;希望对大家会有帮助,有需要的朋友一起去看看吧有时候我们在做表格时,
- 当我们在excel中复制内容,但是有其中几行的内容我们是不需要复制的或者不能将此内容复制给他人的时候,我们就要修改整个表格,非常的麻烦,对于
- Adobe Reader 关于PDF的图标PDF全称Portable Document Format,译为可移植文档格式,是一种电子文件格式
- 很多老师经常需要对学生的文档进行批注,指出哪些地方是正确的,哪些地方是错误的,以此来提醒学生更正错误。在现在这个信息化时代,批注已经不仅仅在
- 如果你的 iPhone 上安装应用有 100+ 甚至更多,导致主屏幕页数较多时,「记忆辅助 + 手动查找」一款不经常用到的 APP 本身就是
- 在Wodr 2007中,打开剪贴板的方法是:在开始选项中单击“剪贴板”工具组上的对话框启动器按钮。在Word 2003中,可以从任务窗口下拉
- Win10系统出现宽带连接错误813怎么办?最近有很多用户反映在使用Windows10时发现这样一个问题,每次开机点宽带连接都会出现813错
- 在打印Excel文件时如何不打印单元格颜色和底纹。步骤一:选择菜单栏中的【文件】→【页面设置】  
- 在实验小学工作,现在需要将此次珠心算比赛名单进行整理。整理前的数据源如下:
- 给客户发过去一份word文档的合同,一个小时之后发回来后就下线了。电话问他,他说改的地方太多了,记不清了。汗。要我一行一行对比着找出两个wo
- 本文分享excel负数变正数的两种方法,主要使用到查找替换和选择性粘贴命令来实现将负数变成正数.这是我们Excel效率手册读者群一个读者的提
- Excel“定位”对话框中“行内容差异单元格”与“列内容差异单元格”如何使用?“行内容差异单元格”的作用在于定位选中区域中与当前活动行内容不
- 在使用Windows系统的过程中,如果在设置人脸或指纹登录时,遇到提示Windows Hello在本设备上不可用,小编会认为登录选项中的pi
- 这里先把Word、Excel、PowerPoint这三个软件,分别用三篇图文叙述一下,一起回忆,陪伴我们成长的那些软件,还有曾经那些难忘的时
- Word2010中Shift键的使用的妙招一、 Shift + Insert键 = 粘贴这条命令正好与上一个剪切命令相对应,按住Shift并
- 在Excel中经常需要用到排名次的功能进行排名,或许有的朋友并不知道排名该如何操作,如果不懂的朋友欢迎一起来学习研究一番吧。接下来是小编为大
- 有win10用户跟小编反映说自己的开机之后键盘就失灵不能用了,检查电脑也不知道是哪里出现的问题,想问问小编要怎么解决这种问题。那下面小编就给
- Excel2010分数类型数字格式怎么设置?小编知道,一起来看看吧!1、打开Excel2010工作簿窗口,选中需要设置分数类型数字格式的单元