简明Excel VBA(三)过程和函数

2018-12-08  本文已影响0人  Bluetata

简明Excel VBA

本文集同步于GitHub仓库:# Youchien/concise-excel-vba

1.6 过程和函数

SubFunction 是VBA提供的两种封装体,利用宏录制器得到的就是Sub
两者的区别不大,Sub不需要返回值,Function可以定义返回值和返回的类型。

1.6.1 Sub过程

[Private|Public] [Static] Sub 过程名([参数列表 [As 数据类型]])
    [语句块]
End Sub
' [Private|Public]定义过程的作用范围
' [Static]定义过程是否为静态
' [参数列表]定义需要传入的参数

调用Sub的方法有三种,使用Call、直接调用和Application.Run

举个例子:


image.png

1.6.2 Function函数

vba内部提供了大量的函数,也可以通过Function来定义函数,实现个性化的需求。

[Public|private] [Static] Function 函数名([参数列表 [As 数据类型]]) [As 数据类型]
    [语句块]
    [函数名=过程结果]
End Function

使用函数完成上面的例子:


image.png

参数传递

参数传递的方式有两种,引用和传值。
传值,只是将数据的内容给到函数,不会对数据本身进行修改。
引用,将数据本身传给函数,在函数内部对数据的修改将同样的影响到数据本身的内容。

参数定义时,使用ByVal关键字定义传值,子过程中对参数的修改不会影响到原有变量的内容。
默认情况下,过程是按引用方式传递参数的。在这个过程中对参数的修改会影响到原有的变量。
也可以使用ByRef关键字显示的声明按引用传参。

Sub St1(ByVal n As Integer, ByRef range)
    ...Other code
End SUb
上一篇 下一篇

猜你喜欢

热点阅读