VBA的有参过程定义,形参用啥说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA的有参过程定义,形参用啥说明相关的知识,希望对你有一定的参考价值。

VBA的有参过程定义,形参用什么说明

ByVal 与 ByRef(默认值)
这两个是子过程的参数传递时,指定参数按什么传递的
ByVal(按值传递)
ByRef(按地址传递)
具体这样来理解:
过程中的参数列表,我们称形参
调用过程时的参数列表,我们称实参

在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能
那么在传递的过程中,就存在这两种传递方式
传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的
传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容

通过上面的分析,你只要记得:
按值传递时(ByVal),形参的改变不会影响到实参
按址传递时(ByRef),形参的改变,会影响到实参

应用时,我们可以利用按址传递的过程,给一个子过程(Sub过程)进行参数返回

例:
Dim A as integer,B as integer
A=1
B=2
Call AAA(A,B)
Print A & " " & B '得到的结果是2 3 (形参的改变影响到了实参)
Call BBB(A,B)
Pring A & " " & B '得到的结果跟上面的一样, 2 3 (形参的改变并没有影响到这个实参)

Sub AAA(i as integer, j as integer) '默认,则按址传递
i=i+1
j=j+1
End Sub

Sub BBB(ByVal i as integer, ByVal j as integer)
i=i+1
j=j+1
End Sub
参考技术A 形参是什么?

c复习过程随笔七

定义参数:无参:

类型名 函数名()

{

函数体

}

有参:

类型名 函数名(形式参数表列)

{

函数体

}

空函数

调用函数时注意函数有无返回值

参数传递:实参(常量变量表达式)传递给形参,实参要有确定的值

形参实参参数类型相同,不同则进行转换

形参只在函数调用时被分配内存单元,而且不会改变实参的值

函数的返回值:

  1.函数的返回值是通过函数中的return 语句获得的

  2.函数返回值的类型在定义函数时定义

  3.返回值类型应与函数类型相同,不同时转换成函数类型

  4.不带返回值,则应定义为void属性

数组作为函数参数哦:

  数组元素可以用作函数实参,不能用作形参。因为形参是在函数被调用时临时分配存储单元的,数组在内存占连续的一段存储单元

  数组名作参数(实参和形参)数组名作参数时,传递的是数组首元素地址。所以在声明形参时,不用指定数组大小,可以接一个空方括号。此时形参改变时,实参也改变。

  多维数组名在形参定义时,可以省略第一维大小,其他则不能省。形参实参第二维大小相同。

局部变量和全局变量:

  主函数中定义的变量只在主函数中有效。不同函数中可以使用同名的变量,他们代表不同的对象,互不干扰。形参也是局部变量

  在函数内部定义的是局部变量,在函数外部定义的是全局变量,在函数调用全局变量时,可以改变全局变量的值。

  若全局变量与局部变量相同,则在局部变量范围内,全局变量被“屏蔽”

变量的存储方式:

    全局变量存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序执行完毕释放。

    动态存储区存放:函数形参,函数中定义的没有用static声明的变量(即自动变量),函数调用时的现场保护和返回地址。函数调用时动态分配存储空间,函数结束时释放这些空间。 如果连续调用两次,分配的空间一般是不同的。

数据的存储类别:

    auto,statis,register,extern

   局部变量: auto(自动变量):调用函数时,系统给其分配存储空间,在函数调用结束时自动释放这些存储空间。包括:函数中的形参,函数中定义的局部变量

    static (静态局部变量):希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次调用该函数是,该变量已有值。

    (静态局部变量只在编译时赋初值,即只赋值一次,而自动变量在函数每调用一次,就重新给其赋初值。如果不赋初值的话就自动赋‘0’或‘\0’)

    register(寄存器变量):数据存储在cpu寄存器中,速度快,使用频度高

    全局变量: extern:扩展外部变量在程序文件中的作用域,也可以将其作用域扩展到其他文件(如源文件)(将外部变量作用域限制在本文件中,只需在定义外部变量时前加static(此时static并不是将其分配在静态存储区而是变量作用域的扩展问题))

 内部函数和外部函数

  内部函数:该函数只能被本文件中其他函数所调用 。定义前加static 

  外部函数:函数可以被其他文件的函数使用,其他文件调用时要进行声明。定义前加extern,一般省略

以上是关于VBA的有参过程定义,形参用啥说明的主要内容,如果未能解决你的问题,请参考以下文章

c复习过程随笔七

有参宏定义

在VBA中如何调用过程与函数?

0919课堂小结

vba代码阅读

构造函数的有参和无参的区别,构造函数的参数是派啥用场的?