Thomas Risi Softwareentwicklung

ArrayMerge

Aus einer Frage in einem Forum ...

Es sollen mehrere VB-Arrays 'miteinander verschmolzen' werden. Hier nun eine Funktion, die das für zwei Arrays löst. Um beliebig viele Arrays zu vereinen, einfach die Funktionsaufrufe ineinander verschachteln (s. Beispielcode).

Option Explicit Function array_merge(arr1() As Variant, arr2() As Variant) As Variant() Dim c As Long: c = LBound(arr1) Dim d As Long: d = LBound(arr2) Dim u As Long: u = UBound(arr1) - c + 1 Dim v As Long: v = UBound(arr2) - d + 1 Dim a(): ReDim a(u + v - 1) Dim i As Long For i = c To c + u - 1 a(i - c) = arr1(i) Next i For i = d To d + v - 1 a(i + u - d) = arr2(i) Next i array_merge = a End Function Sub t() Dim a1(-1 To 3): a1(-1) = 0: a1(0) = 1: a1(1) = 2: a1(2) = 2.4: a1(3) = 2.8 Dim a2(2 To 4): a2(2) = 3: a2(3) = 4: a2(4) = 5 Dim a3(2): a3(0) = 6: a3(1) = 7: a3(2) = 8 Dim a4(3): a4(0) = 9: a4(1) = 10: a4(2) = 11: a4(3) = 12 Dim r() r = array_merge(array_merge(array_merge(a1, a2), a3), a4) Dim i As Long For i = 0 To UBound(r) Debug.Print r(i) Next i End Sub

Bewerten Sie bitte dieses Programm.
1 2 3 4 5
Weniger nützlich Sehr nützlich
Bitte teilen Sie uns mit, warum Sie das Programm so bewertet haben. (optional)