Excel 我谈function和sub的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel 我谈function和sub的区别相关的知识,希望对你有一定的参考价值。

个人认为function和sub最大区别在两点:
1.function可以返回值,sub则不可以返回值;
2.sub可以直接执行,但function需要调用才可以执行;
使用时:
1.如果需要过程名(function或sub的名字)能返回值,则必用function;
2.如果需要直接执行(F5或链接到按钮控件),那么就要用sub了;
参考技术A function 是一个过程,不能直接当宏使用,function直接可以相互调用实现完整的一个function,但最终功能实现在Excel上只能通过sub调用而实现,而sub可以直接使用。而且sub之间可以相互调用。function可以返回值,sub则不可以返回值,两者都可以使用参数,不过sub使用参数了,只能当function来使用 参考技术B 在Excel中,function可以接受参数,而sub不支持参数。
不过function可以接受空参数(optional可选参数),实现与sub一样的功能。本回答被提问者采纳
参考技术C function函数允许带个返回值
sub过程只是一段执行过程,不能带返回值

VB.sub过程和function过程的区别

function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有

 function   可以用自身名字返回一个值,sub   需定义别的变量,用传址方式传回值。 
         
Sub   过程与Function   过程的区别:  
  • Sub   过程定义时无需定义返回值类型
  • Function   过程一般需要用“As   数据类型”   定义函数返回值类型。      

VB有两大类过程——事件过程和通用过程;
通用过程又分:
  • 函数过程(Function过程)又称自定义函数过程、
  • 子过程(Sub过程)
函数过程名有返回值,子过程名不能保存值。函数可以参与表达式的计算,子过程不能
在表达式中调用时一定要用函数过程,否则一般用子过程
function   可以用自身名字返回一个值,自带的函数功能是一样的 例如:inputbox
sub   需定义别的变量,用传址方式传回值。例如:msgbox

Sub   过程与Function   过程的区别:        
  1.   Sub   过程定义时无需定义返回值类型,而Function   过程一般需要用“As   数据类型”   as子句决定函数过程返回值
            的 类型,如果忽略As子句,则函数过程的类型为变体型         
  2.   Sub   过程中没有对过程名赋值的语句,而Function   过程中一定有对函数名赋值的语句。        
  3.   调用过程:调用   Sub   过程与   Function   过程不同。调用   Sub   过程的是一个独立的语句,而调用函数过程只 
         是表达式的一部分。Sub   过程还有一点与函数不一样,它不会用名字返回一个值。但是,与   Function过程一样, 
         Sub   过程也可以修改传递给它们的任何变量的值。          
  4.   调用   Sub   过程有两种方法:        
          以下两个语句都调用了名为   MyProc   的   Sub   过程。          
               Call     MyProc   (FirstArgument,   SecondArgument)          
               MyProc     FirstArgument,   SecondArgument        
         注意当使用   Call   语法时,参数必须在括号内。若省略   Call   关键字,则也必须省略参数两边的括号

以上是关于Excel 我谈function和sub的区别的主要内容,如果未能解决你的问题,请参考以下文章

vb中 sub 与 function 的区别

asp中sub与function的区别?

asp中sub与function的区别?

VBA基础 - 函数和模块

VB.sub过程和function过程的区别

VB 中的Function过程和Sub过程的 区别在哪?