Ich möchte ein Stück Code erstellen, mit dem ich einen Wert von einem Array einem anderen Array zuweisen kann, die unterschiedliche Längen haben. Das habe ich bisher.Wie kann ich einen Wert in einem Array den Wert in einem anderen Array (VBA) machen?
A(1) = 0
A(2) = 0
A(3) = 6
A(4) = 5
A(5) = 7
n = 0
For i = 1 To 5
If A(i) <> 0 Then
n = n + 1
End If
Next i
ReDim B(1 To n) As Integer
For j = 1 To n
For i = 1 To 5
If A(i) <> 0 Then
B(j) = A(i)
End If
Next i
Next j
MsgBox B(2)
Im Moment auf 7 zurückkehrt, während es 5 zurückgeben sollte, werden alle Werte in B 7. Wie kann ich diesen Code ausführen?
Ihr Code scheint darauf hinzuweisen, dass Sie keine 0-Werte kopieren möchten. Wenn Sie also ein Array '(4, 2, 0, 8, 9)' hätten, hätten Sie 'B' nur mit 4 Elementen, wie' (4, 2, 8, 9) '? – trincot
Sie Code ist ein bisschen komisch :) Ich verstehe nur nicht, was das Endziel ist. Was Sie tun: In der ersten Schleife zählen Sie die Werte, die nicht 0 sind, es sollte "n = 3" ergeben. Danach haben Sie 2 verschachtelte Schleifen. Der erste wird 3 Mal ausgeführt, der zweite (verschachtelt) ordnet dem B-Array die Werte in A zu, die nicht 0 sind. Aber das Endergebnis ist immer das Gleiche: Es wird B den allerletzten Wert von A zuweisen, der nicht ist 0, also '7', und du landest mit 7 überall. Sie müssen wirklich genau angeben, was Sie wollen, mit Daten des erwarteten Ergebnisses. –