DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Sub -Anweisung / Prozedur !HILFE!

Hallo zusammen.
 
Warum will mir Script meine Werte die ich in einer Sub Prozdur verändere nicht übergeben bzw. ausgeben?
 
    L1=0
    L2=0
    L5=0
    L6=0
Dim Versch
 
'....Start Auswertung
 
Call Geschw_Auswert(L1,L2,L5,L6)
 
Public Sub Geschw_Auswert(ByRef L1,ByRef L2,L5,L6)
 
.
.
.
Anweisungen in denen L1....L6 verändert wird
.
.
.
End sub
 
Danach möchte ich die veränderten L1....L6 weiterverwenden.
 
Wie Ihr seht habe ich schon vieles ausprobiert und es ist auch ein wenig chaos.
 
Denke das Private reichen würde. Bin mir bei BYVAL und bei BYREF nicht mehr ganz sicher.
Meine von meiner Informatik Vorlesung noch zu wissen dass bei einem von beidem der übergebene Wert nicht gändert wird.
 
Egal wie ich es mache, bei beiden habe ich am ende nach End Sub wieder L1...L6 = 0
 
Könnt Ihr mir da helfen?
 
Gruß Pascal
0 Kudos
Message 1 of 3
(3,817 Views)
Hallo Pascal
 
Wenn du keine Werte verändern möchtest, solltest du bei ByVal verwenden. Dann werden die Werte zunächst kopiert. (Infos findest du auch in der Hilfe zu "Sub"). Wenn du nichts angibst, wird der Standard ByRef verwendet.
Dein Problem ist aber ein Anderes. Du verwendest die DIAdem-Hilfsvariablen L1.. L3. Diese sind global definiert und enthalten selbst nach Beenden des Scripts die Werte, die irgendwo gesetzt wurden. Du solltest also mit eigenen VBS-Variablen arbeiten und diese erst am Ende auf die DIAdem-Variablen kopieren, falls du sie anderswo brauchst.
 
Ich hoffe die Erklärung hat etwas geholfen.
 
Winfried
0 Kudos
Message 2 of 3
(3,814 Views)

Hallo Winfried,

vielen vielen dank für deine schnelle Hilfe. Habe eigene Variablen deklariert und es Klappt.Smiley Very Happy

Gruß Pascal

0 Kudos
Message 3 of 3
(3,799 Views)