Hallo,
ok das ist auch nicht ganz so einfach zu verstehen und ergibt sich meistens aus der Programmierpraxis, aber mal ein Versuch:
Wenn Du Deine Werte bspw. an andere Variablen oder Eigenschaften übergeben willst, ohne die Ausgangsvariablen zu verändern, weil Du die noch unveränderten Werte für andere Operationen benötigst, würdest Du A und B verwenden, andernfalls möchtest Du in einer ausgelagerten Sub-Prozedur Deine Variablen neu berechnen und genau mit diesen neuen Werten in der Hauptprozedur weiterarbeiten und würdest dann A2, B2 nutzen....
Option Explicit
Sub A()
Dim x As Integer, y As Integer
x = 1: y = 2
Call B(x, y)
Call MsgBox("x = " & x & " y = " & y)
End Sub
Sub B(ByVal x As Integer, ByVal y As Integer)
Dim lngVal1 As Long, lngVal2 As Long
x = x + 2: y = y + 2
lngVal1 = x
lngVal2 = y
Call MsgBox("lngVal1 = " & lngVal1 & " lngVal2 = " & y)
End Sub
Sub A2()
Dim x As Integer, y As Integer
x = 1: y = 2
Call B2(x, y)
Call MsgBox("x = " & x & " y = " & y)
End Sub
Sub B2(ByRef x As Integer, ByRef y As Integer)
x = x + 2: y = y + 2
End Sub
Gruß,
|