了解具名引數和選擇性引數
當您呼叫 Sub 或 Function 程式時,可以依引數出現在程式定義中的順序, 以位置方式 提供引數,或者您可以依名稱提供引數,而不考慮位置。
例如,下列 Sub 程式會接受三個引數。
Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)
Debug.Print strName, intAge, dteBirth
End 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
當您使用選擇性引數呼叫程式時,可以選擇是否要指定選擇性引數。 如果您未指定選擇性引數,則會使用預設值,如果有的話。 如果未指定預設值,則引數會是指定類型的任何變數。
下列套裝程式含兩個選擇性引數: varRegion
和 varCountry
變數。 IsMissing 函式會判斷是否已將選擇性的 Variant 引數傳遞至程式。
Sub OptionalArgs(strState As String, Optional varRegion As Variant, _
Optional varCountry As Variant = "USA")
If IsMissing(varRegion) And IsMissing(varCountry) Then
Debug.Print strState
ElseIf IsMissing(varCountry) Then
Debug.Print strState, varRegion
ElseIf IsMissing(varRegion) Then
Debug.Print strState, varCountry
Else
Debug.Print strState, varRegion, varCountry
End If
End Sub
您可以使用具名引數來呼叫此程式,如下列範例所示。
OptionalArgs varCountry:="USA", strState:="MD"
OptionalArgs strState:= "MD", varRegion:=5
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應