excel学习库

excel表格_excel函数公式大全_execl从入门到精通

180_VBA 过程和函数:传递参数教程和实例

在VBA的世界里,子过程或函数就像是一位演员,等待着他人的呼唤和剧本。当我们在调用这些子过程或函数时,我们就像是导演,传递给他们的参数就像是剧本中的角色,赋予了子过程或函数更丰富的个性和情感。

这些参数,就像是一封信的信封,在传递的过程中封装着实际的信息。在子过程或函数的定义阶段,我们设置好参数的名称和类型,就像是准备好的信封,只等待着接收内容。

当我们在调用子过程或函数时,我们按照需要提供正确的参数值,这些参数值就像是信封里的信件,带着我们的信息和请求,传递给了子过程或函数。

这样一来,在子过程或函数内部,它们可以使用我们提供的参数,就像是演员根据剧本中的角色和情感,生动地表演出他们的故事。因为有了这些参数,我们的程序就像是一部小说,因为有了不同的角色和情感,而变得丰富多彩、动态而灵活。

本篇教程主要介绍传递参数的基础部分,主要内容包括:

l 带参数的子过程和函数的定义方法。

l 调用子过程和函数时,参数的书写方式。

l 可选参数的语法和实际用法。

关于子过程和函数、它们的区别以及如何调用,请看前几篇内容。

在子过程和函数中,传递参数的用法基本相同,本篇以子过程为例介绍参数的使用,函数中用法参考子过程。

带参数的子过程定义方法

子过程可以接受一个或多个参数,参数可以是常量变量表达式,并且每个参数指定其名称和数据类型

看实际的例子,以下代码定义了带两个参数的一个过程,过程名是 CustomLog ,参数分别是 num base。此过程的用途是计算任意底数的对数,num 是计算对数的值,base 是底数。

'声明一个带参数的子过程

Sub CustomLog(num As Double, base As Integer)

Debug.Print Log(num) / Log(base)

End Sub

子过程按照这种方法定义后,调用时,VBA 会提示需要提供什么参数以及参数类型

调用带参数的子过程

调用带参数的过程,只需将参数按定义顺序书写即可,多个参数使用逗号分开。

以上述过程为例,在一个主过程调用 CustomLog 子过程。

'主入口

Sub Main()

CustomLog 100, 10

End Sub

除了按顺序书写参数外,也可以按任意顺序书写参数,但是这时需要给出参数名。带参数名的传递参数语法如下:

[参数名]:=[实际参数值]

参数名后写冒号等号(:=),再写需传递的参数值。看实际的例子,以下三种方式是等效的。

'主入口

Sub Main()

CustomLog 100, 10 '方式一

CustomLog num:=100, base:=10 '方式二

CustomLog base:=10, num:=100 '方式三

End Sub

可选参数的用法

实际开发中,有时子过程的参数可能不是必须的,我们希望根据参数有无情况,执行不同的操作。针对这种情况,VBA 提供了可选参数机制。

可选参数语法

可选参数在定义子过程时需要指定,方法是在参数名前添加 Optional 关键词。

Optional [参数名] As [数据类型]

还是以 CustomLog 子过程为例,我们把底数 base 设为可选参数。

'声明一个带可选参数的子过程

Sub CustomLog(num As Double, Optional base As Integer)

'子过程代码

End Sub

调用时,VBA 会提示可选参数,参数放置在中括号中

设置可选参数的默认值

可选参数定以后,如果在子过程中使用,需要判断参数有无提供。否则未提供而直接使用时,程序会出错。

针对这种情况,VBA 提供了默认值机制,即可选参数未提供时,使用预算设置好的默认值。

可选参数默认值,在定义过程时就设置,语法如下:

Optional [参数名] As [数据类型] = [默认值]

还是以 CustomLog 子过程为例,我们把底数 base 设为可选参数,并且默认值设为 10。

'声明一个带可选参数的子过程

Sub CustomLog(num As Double, Optional base As Integer = 10)

Debug.Print Log(num) / Log(base)

End Sub

调用时,如果提供了 base 底数,则以提供的底数计算;如果未提供 base 底数,则以默认值 10 计算。

'主入口

Sub Main()

CustomLog 100, 100 '返回 1

CustomLog 100 '返回 2

End Sub

可选参数的位置

当子过程有多个参数时,其中的可选参数需写在参数列表的末尾,否则 VBA 提示错误。

可选参数错误顺序:

可选参数的正确顺序:

总结

VBA的过程和函数接受一个或多个参数,犹如海纳百川,广收博取。在调用它们时,我们需注意传入的参数的书写顺序:若是忽略参数名,则按照定义的顺序传递;若注重参数名,则可随意书写。此外,过程和函数可以设置某一个参数是可选的,如同 VLOOKUP 函数的第四个参数一般,具有灵活的查找方式。当设置为可选参数时,我们还可为其设定一个默认值,赋予其生命的活力。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接