Erklæringen Sub

Angiver en subrutine.

Syntaks:

diagram over udtrykket Sub


[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
    ' udtryk
    [Exit Sub]
    ' udtryk
End Sub

Parametre:

name: Navn på subrutinen.

arguments: Valgfrie parametre, du vil overføre til subrutinen.

argumentfragment

argument-fragment


      {[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
    
Parametre

Optional: Argumentet er ikke obligatorisk.

ByRef: Argumentet overføres ved reference. ByRef er standarden.

ByVal: Argumentet overføres ved værdi. Dets værdi kan ændres af den kaldte rutine.

char: Typeerklærings-tegn.

typename: Primitivt datatypename. Der kan også angives biblioteker eller moduler, der er defineret som typer.

= expression: Angiv standardværdi til argumentet, der matcher dets erklærede type. Optional er nødvendig for ethvert argument, der angiver en standardværdi.

ParamArray: Brug ParamArray, når antallet af parametre er ubestemt. Et typisk scenarie er en brugerdefineret Calc-funktion. Brug af ParamArray bør begrænses til den sidste parameter i en rutine.

tip

Brug af ParamArray eller = expression kræver, at Option Compatible er placeret foran den eksekverbare programkode i modulet.


warning

Under brug af Option VBASupport 1 initialiseres Optional-argumenter uden nogen standardværdi (= expression) efter deres datatype, undtagen hvis den er Variant.


typenavn-fragment

primitivt datatype-fragment


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
tegn-fragment

typeerklærings-tegn


      { % | & | ! | # | $ | @ }
    

Eksempler:


Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
    For siStep = 0 to 10 ' Fyld array med testdata
        sListArray(siStep) = chr$(siStep + 65)
        MsgBox sListArray(siStep)
    Next siStep
    sReturn = LinSearch(sListArray(), "B")
    Print sReturn
End Sub
 
Function LinSearch( sList(), sItem As String ) As Integer
Dim iCount As Integer
' Linsearch søger en TextArray:sList() efter en TextEntry:
' Returværdi er elementets indeks eller 0 (Null)
    For iCount=1 To Ubound( sList() )
        If sList( iCount ) = sItem Then
            Exit for ' sItem fundet
        End If
    Next iCount
    If iCount = Ubound( sList() ) Then iCount = 0
    LinSearch = iCount
End Function

Støt os venligst!