VBA中的函数过程及对"形参"、"实参"的理解(学习方案六)
yuyutoo 2025-03-11 22:50 1 浏览 0 评论
2.1.8 Function过程,也就是我们经常提到的函数过程。对于函数,我给出了一个更为确切的定义,这个定义我在各个平台上均有发表和阐述,我给出的定义如下:
如果对于唯一性输入值value,输出(或者return)的值也具有唯一性(这种输入或者输出的值没有个数的限制),那么具有这种变化关系的输入和输出关系,就称为输出是输入的函数.
而Function函数过程就是特别强调的这种输入和输出的关系。返回值就是我们说的是输出。也就是在教程中我们说的Function过程是有返回值的过程。这点也是Function过程和Sub过程的最为显著的不同点。通常而言,我们可以利用Function过程建立自己的自定义函数。就如同工作表函数中的SUM,COUNT等等。
2.1.9 在函数的讲解中,我还给大家讲解了两个非常重要的概念。一是易失性函数,一是参数的传递方式。
易失性函数,我们在理解时间的时候,经常会出现难以表述的状况,如什么是过去,什么是现在,什么是未来?所谓过去的心不可得,现在的心不可得,未来的心不可得。这就是时间的易失,也就是时间在函数上的体现。例如,now函数表述的是现在,那么什么是现在呢?当你确认此刻是现在时,现在的时刻却已经悄然离去。所以您无法准确的描述现在的时刻。这就是函数的易失性。
在函数的讲解中,我们同时讲了如何将非易失函数转换为易失性函数,这些都可以在教程中找到答案。
2.1.10 学习的过程是无止境的。当我们学习到这里,VBA的基本知识点,录制宏,条件结构,循环结构,对象,事件等等都有了初步的认识,这里我们要对自己的能力进行第一次升华了。就是理解形参和实参。也就是参数的传递的方式了。
我们在看代码的运行的时候,往往是看到的现象,而本质是在后台运行的。我们要透过现象看本质,一切相皆是虚妄,如果能见诸相非相,那就是见到了事物的本质。形参和实参配合着内存的占用正是见证了这种参数的传递。形参是传递了值,实参是传递了内存的地址:
1) 按值传递ByVal:在过程被调用时,传递给形参的是调用过程中的相应实参的值,形参与实参各占有不同位置的储存空间,被调用过程在执行过程中,只是改变了形参变量的值,不会调用过程的实参值。在函数声明行在参数名称之前加上关键字ByVal。
2)按地址传递ByRef:就是当调用一个过程时,是把实参变量的内存地址(指针)传递给被调用过程的形参,也就是说形参与实参使用相同地址的内存单元。因此当在被调用过程中改变形参的值,就等于改变了实参的值。
以上的逻辑关系就是相与本质的关系,如果我们能跳出VBA的框框,把自己的思维放在更大范围内,很多难于理解的地方会迎刃而解。
2.1.11 按值的传递其实就是传递的值,这个时候,形参和实参占用不同的内存,如果参数的值发生改变时,只是形参的占用的内存发生了改变,而实参并没有改变。
如果是按地址传递是传递的地址指针,这个时候形参和实参的指针是指向同一位置的,形参改变的时候,形参的内存也会改变,实参也随之会发生改变。我们可以对照教程仔细的理解两者的关系,同时不要拘泥于VBA领域,这一点在我关于"类"的讲解中体现的更加明显。在类的讲解中会贯彻另一种思维,当然,类的教程是VBA的高级教程,我们的学习要循序渐进。
· 如何学习VBA呢? 概括的说就是: 学习过程中要信、解、受、持,更要有回向的业力。无论您在学习的任何阶段,都要对照教程的知识点加持自己的实际工作,总会有丰厚的收获。
相关推荐
- 迷你世界:最恐怖的地图?公墓探险解密,胆小慎入,气氛拉满
-
恐怖题材的地图一直都是玩家们又爱又恨的,一方面地图的代入感和体验感都是非常不错的,而另一方面太过于紧张的气氛又让人觉得非常的害怕。而今天给大家推荐的这款地图,则是将地图的恐怖感放到了最大,一起来看看吧...
- 迷你世界:羊纸体验玩家自制地图,嘲笑地图太简单,结果却被炸飞
-
前言:迷你世界主播羊纸体验玩家自制闯关地图,本以为能轻松过关嘲笑地图套简单,却被无情炸飞迷你世界可以说是目前最受欢迎的沙盒游戏,在游戏中小伙伴们可以使用道具建造出各种好玩、有趣的建筑物,而且玩家们还会...
- 迷你世界:找不到好地图?无需再求地形码,掌握这些自己做一个
-
在《迷你世界》中,玩家如果想玩某张地图,是可以通过输入激活码来进入该地图的。但如果玩家想对地图进行更改,例如多给地图添加一些资源或者让整张地图仅有一到两个区域时,则需要自己进行修改。这种修改的方法很简...
- 迷你世界:地图大盘点,网友:每一张都是精心制作
-
如今在众多玩家们的心中,迷你世界有着不可撼动的地位,确实,这款游戏能有今天这样的成就着实不容易。近日有关迷你世界要迎来新版本的消息也被大家纷纷议论着,很多人都在等待全新迷你的到来,毕竟里面的新地形以及...
- CS2更新,沙2、Nuke地图调整;CS战队排名更新
-
在防守端,两名玩家不再需要快速爬上A小了。V社发布了CS2的一个小更新,其中最突出的变化是更改了Dust2上CT出生点通向A小的箱子堆。...
- 2024年7月23日更新日志:沙二现可单人跳上A小!
-
2024年7月23日CS更新日志...
- 迷你世界:想做地图却不知从何下手?理清思路方法,让你轻松造图
-
在《迷你世界》中,制作地图是一件非常有意思的事情,特别是当玩家呕心沥血制作出来的地图被别的玩家所肯定时,那种满足感是无可比拟的。不过,要想制作出好的地图可不是一件容易的事,很多玩家在开始的时候就犯了难...
- 路痴的福音,玩家在《新世界》自制了一款迷你地图
-
在国产网游已经进化到一键寻路的今天,很难想象还有《新世界》这种没有小地图的。再考虑到这款亚马逊网游的超大地图,以及并没有坐骑(官方原因归于“动物抵抗运动”),那是非常不适合路痴了,每次切换大地图也十分...
- 迷你世界:地图模块怎么用?编辑地图更简单,立马变成大佬
-
最近关于迷你世界的议论可不少,不过在这些议论声中,大家却都是充满开心的。原来迷你世界版本又进行了一次更新,这次的更新中,不但为玩家们带来了双旦节日的一系列活动,此外还有一个重要改变,那就是迷你工坊的里...
- linux基础命令之zip、unzip命令
-
zip命令是linux系统下压缩文件的命令,后缀为.zip。unzip命令是对zip压缩包进行解压,和tar命令不同,tar命令是支持压缩和解压的命令语法格式:zip参数压缩名称要进行压缩的目录...
- 台湾是如何应用大数据分析提高半导体竞争力
-
自引进IC封装开始,台湾半导体产业已发展40余年,近年来总产值已近20,000亿元新台币,在全世界占有一席之地。半导体产业竞争力来自於成本、良率及交货时间,其中良率更是一家公司有竞争力之所在。近年来自...
- 如何评估自闭症儿童配对的能力,VBmapp 的评估介绍(八)
-
VB-视觉感知与样品配对:锻炼孩子视觉“看”的能力第一阶段(0-18个月)1.能5次从视觉上追踪移动的刺激物达2秒。练习孩子视觉追踪的能力。2.用拇指、食指和中指抓起小物件(钳形抓握法)。孩子在...
- 怎么学好唱歌技巧?
-
1、相信你自己作为一个歌手,如果连你都对自己没有信心的话,也没有人会相信你。你要用你的真情实意去演绎自己的音乐,但如果你想唱得够好,你要有足够的信心。有自信的声音听起来会更加富有感染力和吸引力。想象一...
- 维修笔记本主板必须要把三极管搞懂,今天带大家学习一下三极管.
-
三极管介绍:1.三极管:全称应为半导体三极管,也称双极型晶体管、晶体三极管,是一种控制电流的器件也是非线性原件,有三个极,分别叫做集电极C,基极B,发射极E.目前三极管有NPN与PNP两种,三极管有三...
- VBA中的函数过程及对"形参"、"实参"的理解(学习方案六)
-
2.1.8Function过程,也就是我们经常提到的函数过程。对于函数,我给出了一个更为确切的定义,这个定义我在各个平台上均有发表和阐述,我给出的定义如下:如果对于唯一性输入值value,输出(或者...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)