回覆列表
  • 1 # 慢悠悠的驢

    function是函式,sub是子程式,都可以傳遞引數,但函式有返回值,子程式沒有function 可以用自身名字返回一個值,sub 需定義別的變數,用傳址方式傳回值。 Sub 過程與Function 過程的區別:

    1. Sub 過程定義時無需定義返回值型別,而Function 過程一般需要用“As 資料型別” 定義函式返回值型別。

    2. Sub 過程中沒有對過程名賦值的語句,而Function 過程中一定有對函式名賦值的語句。

    3. 呼叫過程:呼叫 Sub 過程與 Function 過程不同。呼叫 Sub 過程的是一個獨立的語句,而呼叫函式過程只是表示式的一部分。Sub 過程還有一點與函式不一樣,它不會用名字返回一個值。但是,與 Function過程一樣,Sub 過程也可以修改傳遞給它們的任何變數的值。

    4. 呼叫 Sub 過程有兩種方法:

    以下兩個語句都呼叫了名為 MyProc 的 Sub 過程。

    Call MyProc (FirstArgument, SecondArgument)

    MyProc FirstArgument, SecondArgument

    注意當使用 Call 語法時,引數必須在括號內。

    若省略 Call 關鍵字,則也必須省略引數兩邊的括號。

    區別就是:子過程沒有返回值,函式過程有返回值。

    子過程用於編寫一些程式碼的集合,函式過程用於建立函式。

    我興個例吧。

    例如,我要做多處要做如下事件,我只要編寫一個子過程,在其它事件下,我只要把子過程的名稱寫下就行了。

    Private Sub ABC(A As Integer, B As Integer, C As Integer)

    A = 1

    B = 1

    C = 1End Sub Private Sub Command1_Click()ABC "按扭一就呼叫了該子過程了,而不用再寫子過程的程式碼。

    End Sub Private Sub Command2_Click()ABC "按扭二就呼叫了該子過程了,而不用再寫子過程的程式碼。End Sub Private Sub Command3_Click()ABC "按扭三就呼叫了該子過程了,而不用再寫子過程的程式碼。End Sub 函式例子:如我要多處運用C=A+B這個演算法,我可以編寫這個函式:Private Function C (A As Integer, B As Integer) As IntegerC = A + BEnd Function Private Sub Command1_Click()Text1.Text = C(5, 3) "這裡就運用了函式C來計算5+3了。End Sub Private Sub Command2_Click()Text1.Text = C(4, 2) "這裡就運用了函式C來計算4+2了。

    End Sub

  • 中秋節和大豐收的關聯?
  • +C。階乘的計算分別用Sub過程和Function過程兩種方法來實現?