大家好,,我們今日繼續(xù)講解VBA代碼解決方案的第109講內(nèi)容:VBA中什么是過(guò)程,。我的理解,過(guò)程就是執(zhí)行某些動(dòng)作的代碼組合,,這些組合是以完成某項(xiàng)任務(wù)為目的,。VBA過(guò)程分Sub過(guò)程和Function過(guò)程。前者是通常意義上的過(guò)程,,后者經(jīng)常稱之為函數(shù)過(guò)程,。 首先我們分析一下兩者的特點(diǎn): 1 Sub過(guò)程:總是以'sub 過(guò)程名()'開(kāi)頭,以'End Sub'結(jié)尾,,一個(gè)過(guò)程就是執(zhí)行某項(xiàng)動(dòng)作的一套指令,,Sub過(guò)程不返回運(yùn)行的結(jié)果。在這個(gè)過(guò)程中需要執(zhí)行的代碼放在中間,。格式如下: Sub 過(guò)程名() 代碼 ' 需要在過(guò)程中執(zhí)行的代碼 End Sub 要注意的是:過(guò)程名后面的括號(hào)是必須的,,過(guò)程可以帶參數(shù),就放置在括號(hào)里面,。我們看下面的實(shí)際過(guò)程舉例: Sub MyTypeDemo() Dim sTest As String Dim i As Integer sTest = '歡迎你來(lái)到這個(gè)平臺(tái)學(xué)習(xí)VBA!' For i = 1 To Len(sTest) Range('A1').Value = Left(sTest, i) Sleep 200 Next End Sub 上面的過(guò)程名稱是MyTypeDemo,,最后以End Sub結(jié)束,中間的語(yǔ)句是一組對(duì)象動(dòng)作的組合,。其中的意義不再詳細(xì)的介紹了,,之前的文章介紹過(guò)。 2 Function過(guò)程:總是以'Function 程序名()'開(kāi)頭,,以'End Function'結(jié)尾,,和Sub過(guò)程的區(qū)別是Function過(guò)程有返回的值,值可以是一個(gè)值或一個(gè)數(shù)組,,就像我們的工作表函數(shù),,F(xiàn)unction過(guò)程也就是我們說(shuō)的自定義函數(shù)。 格式如下: Function 函數(shù)名(參數(shù)1, 參數(shù)2, ...) As 數(shù)據(jù)類型 ' 需要在函數(shù)中執(zhí)行的代碼 函數(shù)名 = 函數(shù)執(zhí)行后的結(jié)果 End Function 函數(shù)名后面的括號(hào)是必須的,函數(shù)通常都帶有參數(shù),,放置在括號(hào)里面,。函數(shù)也可以不帶參數(shù),但這種情況下的函數(shù)通常沒(méi)什么意義,。 括號(hào)后面的 As 數(shù)據(jù)類型,,雖然并不是必須的,但是我強(qiáng)烈建議加上,。因?yàn)楹瘮?shù)通常都需要有返回值,,這個(gè)數(shù)據(jù)類型就表示著返回值的數(shù)據(jù)類型。 函數(shù)體最后通常都帶有一條返回值語(yǔ)句,,把函數(shù)執(zhí)行的結(jié)果賦值給函數(shù)名,,就可以在調(diào)用這個(gè)函數(shù)的地方得到這個(gè)函數(shù)的執(zhí)行結(jié)果。這個(gè)返回結(jié)果的數(shù)據(jù)類型應(yīng)該與函數(shù)名后面As的數(shù)據(jù)類型一致,,否則可能會(huì)出錯(cuò),。 在我這個(gè)平臺(tái)上講解過(guò)函數(shù)的概念,如果對(duì)于唯一性輸入值value,,輸出(或者return)的值也具有唯一性(這種輸入或者輸出的值沒(méi)有個(gè)數(shù)的限制),,那么具有這種變化關(guān)系的輸入和輸出關(guān)系,就稱為輸出是輸入的函數(shù).可見(jiàn)函數(shù)是一個(gè)過(guò)程,。 函數(shù)示例: Function mysum(n1 as Integer, n2 as Integer) As Integer Dim s As Integer s = n1 + n2 mysum = s End Function 上例中定義了一個(gè)名為mysum的函數(shù),,它接受兩個(gè)類型為Integer的參數(shù),并且返回值是Integer類型,。在函數(shù)內(nèi)部計(jì)算了這兩個(gè)參數(shù)相加的和,,并把這個(gè)和作為返回值賦給mysum??梢酝ㄟ^(guò)調(diào)用這個(gè)函數(shù),,并傳遞相應(yīng)的參數(shù),獲得它的返回值,。 定義函數(shù)后,,就可以在VBA中的過(guò)程,或者其它函數(shù),,或者在Excel表格中使用這個(gè)函數(shù)了,。 到今天為止我把對(duì)象、屬性,、方法和事件過(guò)程的概念結(jié)合我自己的理解給大家分享了一遍,,其實(shí)讀者完全不必全部記住它們,需要的時(shí)候知道在哪里找就行,,在我的這個(gè)平臺(tái)上有很多的文章,,每個(gè)文章都是一個(gè)模塊,,可以獨(dú)立的完成某項(xiàng)任。當(dāng)你需要進(jìn)行某項(xiàng)操作的時(shí)候,,查找一下相關(guān)的模塊,不需要的東西,,給它修修枝,,剪剪葉,整理整理,,一個(gè)程序就OK了,。真的很簡(jiǎn)單,如果你不想在平臺(tái)上查找,,我這里提供給你資料,。有了這些專有的模塊,你的程序會(huì)非常的簡(jiǎn)單,。(我寫(xiě)程序也是這么寫(xiě)的) 今日內(nèi)容回向: 1 什么是過(guò)程,? 2 如何寫(xiě)代碼程序呢? |
|
來(lái)自: 滿泉ca85upjdlw > 《Excel知識(shí)》