Array-Handling
26.09.2005 10:32:38
zink
ich verstehe in folgendem Beispielcode nicht, warum das FeldA nach dem Durchlaufen der Prozedur "Umspeichern" gelöscht bzw. Empty ist.
Sub Test()
Dim FeldA(1 To 5) As Variant
Dim i As Integer
For i = 1 To 5: FeldA(i) = i: Next i 'Feld mit Zahlen belegen
Call Umspeichern(FeldA)
End Sub
Sub Umspeichern(ByRef aFeld As Variant)
Dim FeldB() As Variant
ReDim FeldB(1 To UBound(FeldA))
FeldB = aFeld 'Umspeichern
aFeld = FeldB 'Zurückspeichern
End Sub
Vor dem Aufruf der Pozedur Umspeichern ist das Feld ordnungsgemäß gefüllt. Setzt man innerhalb der Prozedur "Umspeichern" Haltepunkte, sieht man, dass die Zuweisung korrekt funktioniert. Nach dem Verlassen der Prozedur ist FeldA plötzlich "Empty", obwohl doch "ByRef" eingestellt ist.
Wo liegt der Fehler? Ich versteh das nicht.
Grüße
Joachim