VB的通用过程分为两种类型:Sub过程和Function过程。通用过程既可以保存在窗体模块(.Frm)中,也可以保存在标准模块(.Bas)中。通用过程与事件过程不同,它不依附于某一对象,也不是有对象的某一事件驱动或由系统自动调用,而是通过被调用语句(如Call语句)调用才起作用。通用过程可以被多次调用,调用该过程的过程称为调用过程。

Sub过程(子过程)

语法格式: [Public|private] Sub 子过程名 ( [形参列表] )

<语句>

End Sub

子过程没有返回值,即它只能执行Sub和End Sub之间的语句块,不能讲子过程的值赋给某一变量。

使用Sub过程必须遵守“先说明,后调用”的原则,声明Sub过程就是编写一个能够实现预期功能的程序段,可被重复调用。

子过程的调用:

  • 使用Call语句调用子过程: Call <子过程名> [ (<实参表列>) ]

该语法格式中的是参列表是实际参数的列表,如果有多个参数,可用“,”隔开。

利用该语句调用子过程时,如果过程本身没有参数,则<子过程名>后面的<实参列表>和括号可省略;则应给出实际参数,并用括号将参数括起来。

  • 利用子过程名进行调用: <子过程名> [ <实参列表> ]

利用该方法调用子过程时,不能将实际参数用括号括起来。

Function(函数过程)

Function过程与Sub过程的区别是:函数过程有返回值,而子过程没有返回值。

语法格式如下:[Private|Public] Function <函数过程名> [ (形参列表)] [As <类型> ]

<语句块>

函数名=表达式

End Function

函数过程的调用:

函数过程的调用与使用普通函数是相同的,只需写出函数名和函数过程中定义的实参即可。

直接使用函数名的调用方法有两种形式:

  • 如果函数有返回值,一般按如下形式调用:

被赋值对象=函数名(实际参数1,实际参数2,…)

  • 如果放弃函数的返回值(与调用Sub过程一样使用Call语句来调用Function过程  ),一般按如下形式调用:

函数名 实际参数1,实际参数2,…

Sub 过程与Function 过程的区别: 

1. Sub 过程定义时无需定义返回值类型,而Function 过程一般需要用“As 数据类型” 定义函数返回值类型。

2. Sub 过程中没有对过程名赋值的语句,而Function 过程中一定有对函数名赋值的语句。

3. 调用过程:调用 Sub 过程与 Function 过程不同。调用 Sub 过程的是一个独立的语句,而调用函数过程只是表达式的一部分。Sub 过程还有一点与函数不一样,它不会用名字返回一个值。但是,与 Function过程一样,Sub 过程也可以修改传递给它们的任何变量的值。

4. 调用 Sub 过程有两种方法:

以下两个语句都调用了名为 Fact 的 Sub 过程。

Call Fact (m, fac)

Fact m, fac

注意当使用 Call 语法时,参数必须在括号内。若省略 Call 关键字,则也必须省略参数两边的括号。

VB中Sub过程与Function过程的区别相关推荐

  1. 写给初学者:VB 中 ByRef 与 ByVal 参数传递方式的区别

    简而言之,ByRef 和 ByVal 的区别在于参数源是否可以被函数修改,前者(默认方式)是可以被修改的,而后者是不能被修改的. 例: Private Function Func(ByRef argv ...

  2. VB中Unload、END、Hide的区别

    1.Unload 语句 从内存中卸载窗体或控件. 在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程.在其中任一过程中设置 cancel 参数为 Tru ...

  3. vb中randomize和rnd函数的使用区别

    在学VB的随机函数时,出现了randomize和rnd函数,并且MSDN中显示有 randomize(number) rnd(number) 竟然可以加参数. 因此,刚刚研究了一下加number参数的 ...

  4. vb excel编程实例_用过程和函数来解决VB中的计算问题

    学习不延期,宅在家也能高效掌握VB编程! VB干货 ●用VB实现字母滚动效果! ●VB从入门到精通视频教程! ●用VB获取网站登陆的用户名和密码! ●VB编程语言基础知识点总结 VB过程简介 Ø在VB ...

  5. navicat存储过程返回值为空_Excel VBA解读(128):Function过程详解——枯燥的语法...

    学习Excel技术,关注微信公众号: excelperfect 在<Excel VBA解读(27):看看VBA的Sub过程和Function过程>中,我们讲解了Function过程的基本形 ...

  6. java sub函数,请问Sub子过程与Function函数过程有什么区别?

    function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值. Sub 过程与Functio ...

  7. VB中窗体模块、标准模块、类模块的区别

    VB的代码存储在模块中.在VB中提供了三种类型的模块:窗体模块.标准模块和类模块. 简单的应用程序可以只有一个窗体,所用的程序都驻留在窗体模块中,而当应用程序庞大复杂时,就要另外附加窗体.最终可能有几 ...

  8. VB中什么是类,类模块有什么作用

    一.什么是类? 用面向对象的编程思想来看,类就是存储数据同时给一组相关代码赋予协调功能的方式.类是面向对象编程的核心. VB最为人垢病的是它的面向对象特性.实际上VB是一种基于对象的开发工具.在VB中 ...

  9. html的冒号有什么作用,vb中冒号和分号有什么作用

    例题: Private Sub Form_Click() Print "欢迎来到CSS布局HTML"; Print "nihao" End Sub 分号 ; 是 ...

最新文章

  1. JSTL fmt标签格式化日期时分秒显示为00:00:00和12:00:00问题
  2. linux下FTP命令详解
  3. 为什么工作时间长了。技术反而变低了。
  4. 邮件系列(二)-发送邮件
  5. 082_Timing事件
  6. mysql问题举例_MySql问题总结
  7. jsp 的 for循环
  8. 阿里巴巴Java开发手册-finally块必须对资源对象、流对象进行关闭操作,如果有异常也要做try-cach操作
  9. 人生没有理想,只有目标
  10. 李开复创业9年再看世界:中美科技成平行宇宙,VC也要+AI
  11. 玩转树莓派-2.配置你的树莓派
  12. Scala学习05——Scala集合
  13. React Native 圆形进度条组件
  14. 基于ThinkPHP6.0 - 宝塔搭建漫画CMS管理系统源码实测
  15. 51单片机智能小车寻循迹代码
  16. linux原子锁原理,了解Linux的锁与同步、原子加(atomic_add)
  17. Python——简陋的n阶魔方模拟
  18. CF 614 C Peter and Snow Blower (海伦公式、n个顶点绕圆扫过的最大面积)
  19. 标准化管理-(3)科研项目中的标准化审查
  20. DIP分组器核心c#源代码优化封版,三个城市DIP数据分析

热门文章

  1. android APK升级
  2. C语言五子棋游戏for Windows
  3. react/antd实现textarea获取光标位置在光标处插入文字
  4. lisp点坐标x轴可以乘除吗_快速认识建筑施工图
  5. 02-python你应该知道这这些
  6. 贵州省未来二十年的投资机会的探讨1
  7. 服务器内存检测维修工具,服务器内存检测工具
  8. MATLAB中利用ncread函数读取nc文件
  9. 【教程】如何在txt文本中提取重复和不重复的手机号码,两个文件两组号码两批手机号对比重复不重复,一键复制和导出
  10. PHP生成圆角二维码logo