子过程与子函数的区别总结

Sub 和 Function 是VBA提供的两种封装体。

  • 利用宏录制得到的就是Sub
  • 子过程本身是宏, 可以在 Excel , 而函数不会被看作一个宏, 无法像执行宏一样, 单独执行一个函数
  • 函数可以在Excel表格中像一般的Excel函数那样使用,但过程不可以
  • 过程可以指定给Excel表格中的按钮或者图片等对象,但是函数不可以
  • 函数只能在被调用时执行,比如在过程中调用,或者在另一个函数中调用,或者在Excel表格中调用。但不能直接在表格中像运行宏一样执行而过程是可以的
  • 数括号后面的 As 数据类型 虽然并不是必须的,但是我强烈建议加上,因为函数通常都需要有返回值。如果一个函数不返回值,它与子过程并无区别,其中调用方式与子过程相同。因此我们建议,不需要返回值时,直接使用子过程代替函数
  • 函数体最后通常都带有一条返回值语句,把函数执行的结果赋值给函数名,就可以在调用这个函数的地方得到这个函数的执行结果。这个返回结果的数据类型应该与函数名后面As的数据类型一致,否则可能会出错
  • 特别注意:当使用 Call 语法显式声明子函数或子过程时,子过程的参数必须在括号内。若省略 Call 关键字,则子过程省略参数两边的括号。

总结一下,调用子过程和子函数:

  • 无参的子过程:直接写子过程名就调用了,也不用写小括号;
    有参的子过程:[过程名] 多个参数用逗号(,)分开即可 不用将其括号包起来
  • 无参的子函数:直接写函数名就调用了,也不用写小括号;
    有参的子函数:[函数名] 多个参数用逗号(,)分开并将其小括号包起来

 

posted @ 2023-06-19 14:43  iZJ"Qq4577105  阅读(43)  评论(0编辑  收藏  举报