# Sub..end sub

Der Steuerungsbefehl sub..end sub definiert eine Subroutine, die zu einem späteren Zeitpunkt durch den Befehl call aufgerufen werden kann.

Syntax:

Sub name [ ( paramlist )] statements end sub

Argumente werden in die Subroutine kopiert. Wenn es sich bei dem entsprechend aufgeführten Parameter im call-Befehl um einen Variablennamen handelt, werden sie beim Beenden der Subroutine wieder zurückkopiert.

Wenn in einer Subroutine mehr Parameter definiert sind, als aus dem call-Befehl übernommen werden, erhalten die übrigen Parameter den NULL-Wert und können als lokale Variable in der Subroutine verwendet werden.

Argumente:

Argumente

| Argument | Beschreibung |
| --- | --- |
| name | Der Name der Subroutine. |
| paramlist | Eine kommagetrennte Liste von Variablen, die als Parameter in der Subroutine dienen. Sie können wie jede Variable innerhalb der Subroutine verwendet werden. |
| statements | Jede Gruppe von einem oder mehreren Qlik Sense-Skriptbefehlen. |

Beschränkungen:

* Da sub zu den Steuerungsbefehlen gehört und mit einem Semikolon oder einer Zeilenschaltung abschließt, dürfen sich die einzelnen Befehlssequenzen (sub und end sub) nicht über mehrere Zeilen erstrecken.

* Wenn Sie eine Unterroutine mit `Sub..end sub` innerhalb eines Steuerungsbefehls definieren, beispielsweise `if..then`, können Sie nur die Unterroutine innerhalb des gleichen Steuerungsbefehls aufrufen.

Beispiel 1:

`Sub INCR 
 (I,J)` `I = I + 
 1` `Exit Sub 
 when I < 10` `J = J + 
 1` `End Sub` `Call INCR 
 (X,Y)`

Beispiel 2: - Übernahme von Parametern

`Sub ParTrans 
 (A,B,C)` `A=A+1` `B=B+1` `C=C+1` `End Sub` `A=1` `X=1` `C=1` `Call ParTrans 
 (A, (X+1)*2)`

Das Ergebnis des obigen Vorgangs besteht darin, dass A lokal, innerhalb der Subroutine, den Wert 1 erhält, B den Wert 4 und C den Wert NULL.

Beim Abschluss der Subroutine erhält die globale Variable A den Wert 2 (aus der Subroutine zurückkopiert). Der zweite aufgeführte Parameter „(X+1)\*2“ wird nicht zurückkopiert, da es sich nicht um eine Variable handelt. Die globale Variable C wird vom Subroutinen-Call nicht beeinflusst.

## Weitere Informationen

* [Call](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Call.htm)
* [Exit](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Exit.htm)
* [End](https://help.qlik.com/de-DE/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/End.htm)