如何在Excel VBA中设置函数,在学习了前面文章中的一系列例子后,我们应该已经熟悉了Sub过程。通常,我们看到的子流程的基本形式是:
子过程名称()
[在此处放置代码语句]
出口接头
末端接头
这也是我们在编写大多数VBA程序时使用的结构。其中:
过程名是程序员给过程起的名字,其命名规则与变量名相同。同一模块中的过程名不能同名。
和Sub End Sub一起出现,构成了一个完整的程序流程。
过程中的代码可以放置一个ExitSub语句,这意味着要提前退出过程。
一般在VBE编辑器中,记下sub和过程名,按回车键后,会自动添加End Sub语句。子过程用于执行操作,而函数过程可以返回值并创建自定义函数。函数过程的基本语法形式是:
函数名()
[在此处放置代码语句]
[过程名=表达式或值]
[退出功能]
[在此处放置代码语句]
[过程名=表达式或值]
结束功能
可以看出,它的形式类似于Sub流程的基本形式,只是将关键字Sub替换为Function。注意:
在函数过程的代码语句中,至少应该给函数过程的名称赋值一次。
建议避免使用Excel内置函数名、单元格引用、单元格区域名作为函数过程的名称。
函数过程不能修改单元格区域,也不能执行与对象相关的操作。
函数过程可以应用于工作表公式,就像Excel的内置函数一样。函数过程也可以在VBA代码中使用。
ExitFunction语句可以放在代码中,这意味着要提前退出过程。
按照惯例,方括号表示可选。
下面的代码示例计算当前可见工作簿的数量:
函数lWkbNum()
“Dimlcount as long”声明计数变量。
' Dimwkb as workbook '声明工作簿对象变量。
在应用程序中遍历工作簿。
对于应用中的每个工作周。工作簿
如果是可见工作簿,请添加1。
如果wkb。Windows(1)。然后可见
lCount=lCount 1
如果…就会结束
下一周
将结果分配给函数名。
lWkbNum=lCount
结束功能
就像使用Excel内置函数一样,在工作表中输入“=lWkbNum()”即可显示当前打开的可见工作簿数量,如下图所示。
图:单元格A1输入=lwkbnum(),显示2,即当前打开的可见工作簿数为2。
以下代码调用子过程中的自定义lWkbNum函数:
Sub testlWkbNum()
MsgBox "当前可见工作簿的数量为:" lWkbNum。
末端接头
运行后,将显示如下图所示的消息框:
由于前面的系列文章都是使用Sub过程的例子,所以本文详细介绍了Function过程的最基本知识,让大家有一个初步的了解。
无论是Sub过程还是Function过程,都可以携带参数,Function过程还可以设置返回值的类型。以后我们会一步一步加深这方面的知识。