VBA具名引數”:=”用法和理解

來源:互聯網
上載者:User

 

當調用 Sub Function 過程時,可以根據位置來提供參數,也就是出現在流程定義時的順序,或者根據名稱來提供參數,如此就不用管它的位置。

例如,下面的 Sub 程式接受三個參數:

Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)    Debug.Print strName, intAge, dteBirthEnd Sub

可以在正確的位置上提供其參數來調用該過程,每個參數之間都以逗點來區隔,如下列的樣本所示:

PassArgs "Mary", 29, #2-21-69#

也可以有提供具名引數的方式來調用過程,每個參數之間也是以逗點來間隔。

PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary"

具名引數是由參數名稱接著冒號和一個等號(:=)最後加上參數值所組成。

具名引數在調用具有可選的參數過程時顯得特別有用。如果使用具名引數,則不必利用逗號去區分出失去位置的參數。使用具名引數可以很容易的追蹤出傳遞和省略了那些參數。

在過程的定義中,可選的參數前會有一個 Optional 關鍵字。在過程的定義中也可以指定一個預設值賦予可選的參數。例如:

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA"). . . End Sub

當在調用具有可選的參數的過程時,可以選擇是否要對可選的參數給於一個值(如果沒有的話則會採用預設值)。如果沒有指定預設值,則此參數可以是屬於所指定類型的任何變數。

下列過程包含一個可選的參數,varCountry 變數。而 IsMissing
函數可以決定一個可選的參數是否已經傳遞給過程。

Sub OptionalArgs(strState As String, Optional intRegion As Integer, _Optional strCountry As String = "USA")    If IsMissing(intRegion) And IsMissing(strCountry) Then        Debug.Print strState    ElseIf IsMissing(strCountry) Then        Debug.Print strState, intRegion    ElseIf IsMissing(intRegion) Then        Debug.Print strState, strCountry    Else        Debug.Print strState, intRegion, strCountry    End IfEnd Sub

可以使用具名引數來調用上述程式;如下樣本所示:

OptionalArgs strCountry:="USA", strState:="MD"OptionalArgs strState:= "MD", intRegion:=5

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.