選單

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

最近有小夥伴反饋,在寫程式碼的時候,為了程式碼維護的方便呢

將不同功能的程式碼,寫在不同的模組中,方便自己或許的修改,但是寫完之後,發現一個問題

不知道要如何讓程式碼執行,比方說執行了第一個模組之後,如何讓它去執行第二個模組,或者是指定的模組呢?

其實這是一個非常簡單的問題,我們來看看

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

這是我們今天假設的這個場景,從這個場景中我們可以看到當前我們準備了2個模組,三段程式碼

模組2中也有一段程式碼,所以總共是3段程式碼

按照小夥伴的要求,他為了維護的方便呢,將不同功能的程式碼寫在不同的的模組中,現在他需要的是一個啟動開關

如何去啟動其他的模組,我為什麼說很簡單呢?

因為只需要一個單詞,CALL即可以實現。

從上面的程式碼截圖中我們可以看到,每個程式碼塊的最後面都有一個call

他指向的就是不同模組的不同程式碼

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

這是一個非常簡單的操作,如果你的邏輯思維還比較清晰的話,可以繼續往下看

VBA中還可以呼叫含有引數的模組,讓引數在幾個模組中進行不同的運算

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

比方說這樣的

x,y分別是兩個不同的引數,他們之間還可以進行帶入運算,不同的模組執行不同的運算,最終得到的x,y則是不同的

來除錯看下

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

初始,x,y的值是固定的

然後執行到這個Call test(x, y)

程式就來到了第二個模組,去繼續新的運算,在運算中,我們留意x,y的值

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

這裡,x,y不僅僅返回了值,而且還按照我們的要求進行了計算,1+1=2,2+1=3

然後繼續,看看這個引數的值,是否能夠跨模組傳遞

Excel VBA 每日一場景 多個模組如何呼叫以及引數在模組中的傳遞

看到結果,引數是能夠在不同的模組中進行傳遞的,並且傳遞之後並沒有任何的問題,也是成功的執行了我們的運算。

這就是VBA中,模組的呼叫以及引數在多個模組中的傳遞

這種場景比較常用在資料的計算,就像是大家所說的不同的模組執行不同的運算那樣

也是一個非常不錯的場景。