vba传值调用_小白关于VBA调用Sub传递参数之传值与传址的思考
故事一:
從前,森林里有三個小房子,一個紅房子,一個黃房子,一個藍房子。
紅房子里面放了一個蘋果,黃房子里面放了兩個蘋果,藍房子里面放了三個蘋果。
有一天,外面來了三個小精靈,一個叫紅精靈,一個叫黃精靈,一個叫藍精靈。
三個小精靈發(fā)現(xiàn)了三個小房子,看到里面有蘋果,他們餓了,都想吃蘋果。
于是,他們商量了一下,來抓鬮決定誰去哪個房子吃蘋果。
真不知道他們是怎么抓的!
紅精靈抓到了紅房子,黃精靈也抓到了紅房子,而藍精靈抓到了藍房子。
紅精靈和黃精靈兩個商量了一下,排隊一個一個來。
紅精靈先進,他把草果吃掉,然后用魔法變出來10個蘋果,這下紅房子里面有10個蘋果了。
黃精靈進去后,把蘋果吃掉,然后用魔法變出來6個蘋果,這下紅房子里面有6個蘋果了。
藍精靈把藍房子里的蘋果吃掉,然后用魔法變出來12個蘋果。
三個小精靈吃完蘋果后高高興興的走了。
數(shù)一數(shù),現(xiàn)在的紅房子里面有6個蘋果,黃房子里面有2個蘋果,藍房子里面有12個蘋果,好神奇啊!
來源百度圖片
故事二:
有一天大灰狼來到了森林里,發(fā)現(xiàn)了三個小房子,一個紅房子,一個黃房子,一個藍房子,而且里面還分別有1、2、3個蘋果,這個它高興壞了,餓了三天了!但因為高興過度,昏了過去。
然后他就做了一個夢:
(夢接故事一)
等他醒來后,跑到房子里使勁一看,蘋果哪變了啊,怎么還是那么幾個?
算了,不管了,先填飽肚子再講嘍!
來源百度圖片
有時候需要處理些數(shù)據(jù),量也不大,但也不好弄,疫情期間也出不了門,搞點什么東西吧!找到了一本vba的書,正好,可以練練!
小白就是小白,打個比方,雖然都是蛋,但卻叫不出來是雞蛋還是鴨蛋!可在大神眼里,這算是個事嗎?
看到了sub傳遞參數(shù)這里就犯迷糊了,書中舉的例子看著挺簡單的,原理也是那么個原理,可是本人還是一頭霧水,莫名的就躁了,什么傳址,傳值,傳旨的!咋回事,搞不懂啊!
百度真的好,一搞就知道。
翻了半天網(wǎng)頁,瞅的眼睛都花了,經(jīng)過辛苦的思考,終于窺得一些門道,就在這里分享了,希望跟和我一樣的小白思路能清晰一些。雖然目前為止,俺依然是個小白。
這里曬出一個鏈接:
通過實例理解傳址(byref,可省略)與傳值(byval)的區(qū)別
http://club.excelhome.net/thread-1212956-1-1.html
(出處: ExcelHome技術(shù)論壇)
為了方便看,我把內(nèi)容復制過來:
Private Sub god(x As Integer, y As Integer, z As Integer)
x = 3 * z + 1
y = 2 * z
z = x + y
End Sub
Private Sub MainP()
Dim x As Integer, y As Integer, z As Integer
x = 1
y = 2
z = 3
Call god(x, x, z)
Debug.Print x & " , " & y & " , " & z
End Sub
在運行這些代碼之前先自己算出結(jié)果,然后與電腦計算的結(jié)果對比一下,看看能不能對得上。
如果對得上,那就不用看這文章了。
如果對不上,那就理解有誤嘍。
開頭的兩個故事真的是平淡無奇,第一個是對應(yīng)傳址的,第二個是對應(yīng)傳值的,看能不能帶來點啟發(fā)。需要說明的是傳值相當于建了個臨時內(nèi)存,子sub運行結(jié)束后就消失了。
好了,就先說這些吧。
總結(jié)
以上是生活随笔為你收集整理的vba传值调用_小白关于VBA调用Sub传递参数之传值与传址的思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlserⅴer随机函数_sql se
- 下一篇: ios请求头解决参数中文乱码_解决请求参