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