Sub-uttrykket

Definerer ein subrutine (underrutine)

Syntaks:

Diagram over uttrykket Sub


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

Parametrar:

namn: Namnet på subrutinen.

argument: Valfrie parametrar som skal overførast til subrutinen.

argumentfragment

argumentfragment


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

Optional: Argumentet er ikkje obligatorisk.

ByRef: Argumentet vert overført ved referanse. ByRef er standard.

ByVal: Argumentet vert overført ved verdi. Verdien kan endrast av den oppkalla rutinen.

char: Typedeklareringsteikn.

typename: Primitivt datatypenamn. Også bibliotek eller moduldefinerte typar kan spesifiserast.

= expression: Oppgjev ein standardverdi for argumentet som samsvarar med den deklarerte typen. Optional er nødvendig for kvart argument som er ein standardverdi.

ParamArray: Bruk ParamArray når talet på parametrar ikkje er fastsett. Eit typiske scenario er ein brukardefinert funksjon i Calc. Bruken av ParamArray må avgrensast til det siste argumentet i ein rutine.

tip

Bruk av ParamArray eller = expression krev at Option Compatible er sett inn i ein modul framføre programkoden som skal utførast.


warning

Når du brukar Option VBASupport 1, vert argumenta Optional brukte utan standardverdi (= expression) initialiserte ut frå datatypen, bortsett frå Variant.


typenamn-fragment

fragment av primitive datatypar


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

typedeklareringsteikn


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

Eksempel:


Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
    For siStep = 0 To 10 ' Fyll tabellen 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økjer ei TextArray:sList() etter eit TextEntry:
' Returverdien er indeksen for oppføringa eller 0 (Null)
    For iCount=1 To Ubound( sList() )
        If sList( iCount ) = sItem Then
            Exit For ' sItem funne
        End If
    Next iCount
    If iCount = Ubound( sList() ) Then iCount = 0
    LinSearch = iCount
End Function

Støtt oss!